OpenCores
URL https://opencores.org/ocsvn/System09/System09/trunk

Subversion Repositories System09

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 22 to Rev 23
    Reverse comparison

Rev 22 → Rev 23

/branches/before_delete/src/flex9/flex9ads.lst
0,0 → 1,3040
Assembler release DWC_2.0 version 2.11
May 6, 2004 (c) Motorola (free ware)
0001 NAM FLEX9 FOR THE ADS6809
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-dskio.txt"
0001 *
0002 ** FLEX 9 DISK DRIVERS
0003 ** FOR SINGLE/DOUBLE SIDED 5" DRIVES ONLY.
0004 ** USING FD1771.
0005 ** SIDES MAY BE TREATED AS SEPERATE DISKS.
0006 **
0007 ** BY J.E.KENT 1 JAN 1982
0008 *
0009 *
0010 ** F.D. CONTROLLER
0011 *
0012 E014 DRVREG EQU $E014
0013 0080 MOTOR EQU %10000000
0014 0040 SIDESL EQU %01000000
0015 0001 DRIVSL EQU %00000001
0016 E018 CMDREG EQU $E018
0017 E019 TRKREG EQU $E019
0018 E01A SECREG EQU $E01A
0019 E01B DATREG EQU $E01B
0020 *
0021 ** FD1771 DISK CONTROLLER INSTRUCTIONS
0022 *
0023 ** TYPE I INSTRUCTIONS:
0024 *
0025 0000 IREST EQU $00 RESTORE (SEEK TRACK 0)
0026 0010 ISEEK EQU $10 SEEK TRACK
0027 0020 ISTEP EQU $20 STEP ONE TRACK (IN/OUT)
0028 0040 ISTIN EQU $40 STEP IN ONE TRACK
0029 0060 ISTOUT EQU $60 STEP OUT ONE TRACK
0030 *
0031 ** BIT FIELDS FOR TYPE I INSTRUCTIONS
0032 *
0033 0000 SMR6 EQU $00 6MSEC STEPPING RATE
0034 0001 SMR12 EQU $01 12 MSEC STEPPING RATE
0035 0002 SMR20 EQU $02 20 MSEC
0036 0003 SMR40 EQU $03 40 MSEC
0037 *
0038 0004 BVERIF EQU $04 VERIFY BIT (1=ON)
0039 0008 BHDLD EQU $08 HEAD LOAD (1=LOAD HEAD AT BEGINING)
0040 0010 BUPDAT EQU $10 UPDATE TRACK REGISTER (1=TRUE)
0041 *
0042 ** TYPE II INSTRUCTIONS
0043 *
0044 0080 IREAD EQU $80 READ SECTOR
0045 00A0 IWRITE EQU $A0 WRITE SECTOR
0046 *
0047 ** BIT FIELD FOR TYPE II
0048 *
0049 0000 BDAMFB EQU $00 $FB DATA ADDRESS MARK
0050 0001 BDAMFA EQU $01 $FA DATA ADDREES MARK
0051 0002 BDAMF9 EQU $02 $F9 DATA ADDRESS MARK
0052 0003 BDAMF8 EQU $03 $F8 DATA ADDRESS MARK
0053 0004 BEHLD EQU $04 ENABLE HLD & 10 MSEC DELAY (1=ACTIVE)
0054 0008 BBLEN EQU $08 BLOCK LENGTH (1=IBM FORMAT 128 - 1024 BYTES)
0055 0010 BMREC EQU $10 MULTIPLE RECORD (0=SINGLE, 1=MULTIPLE)
0056 *
0057 ** TYPE III INSTRUCTIONS
0058 *
0059 00C4 IRDADD EQU $C4 READ ADDRESS
0060 00E4 IRDTRK EQU $E4 READ TRACK
0061 00F4 IWRTRK EQU $F4 WRITE TRACK
0062 *
0063 ** BIT FIELD TYPE III (READ TRACK ONLY)
0064 *
0065 0001 BSYNC EQU $01 SYNCRONIZE FLAG (0=SYNC TO AM)
0066 *
0067 ** TYPE IV NSTRUCTION
0068 *
0069 00D0 IFINTR EQU $D0 FORCE INTERRUPT
0070 *
0071 ** FORCED INTERRUPT BITS (TYPE IV INSTRUCTION)
0072 *
0073 0001 FI0 EQU $01 NOT READY TO READY TRANSITION
0074 0002 FI1 EQU $02 READY TO NOT READY TRANSITION
0075 0004 FI2 EQU $04 INDEX PULSE
0076 0008 FI3 EQU $08 EVERY 10 MSEC
0077 *
0078 ** DISK DRIVER PATCHES
0079 *
0080 DE00 ORG $DE00
0081 *
0082 ** JUMP TABLE TO DISK DRIVERS
0083 *
0084 DE00 7E DE 37 READ JMP READSC
0085 DE03 7E DE D8 WRITE JMP WRITSC
0086 DE06 7E DF 05 VERIFY JMP VERIF1
0087 DE09 7E DF 17 RESTOR JMP RESTR1
0088 DE0C 7E DF 35 DRIVE JMP DRVSEL
0089 DE0F 7E DF 60 DRVRDY JMP CHKDRV
0090 DE12 7E DF 60 QUICK JMP CHKDRV
0091 DE15 7E DE 2C COLDDR JMP INITDR
0092 DE18 7E DE 36 WARMDR JMP WARMD1
0093 DE1B 7E DE 6B SEEK JMP SEEK1
0094 *
0095 ** CURRNT DRIVE NUMBER ($DE1E)
0096 *
0097 DE1E 00 CURDRV FCB $00
0098 *
0099 ** HEAD POSITION TABLE ($DE1F)
0100 *
0101 DE1F 00 TRKTBL FCB $00 DRIVE 0
0102 DE20 00 FCB $00 DRIVE 1
0103 DE21 00 FCB $00 DRIVE 2
0104 DE22 00 FCB $00 DRIVE 3
0105 *
0106 ** ??? ($DE23)
0107 *
0108 DE23 00 FCB 0
0109 *
0110 ** DENSITY TABLE: ($DE24)
0111 ** HOLDS SECTORS/TRACK FOR DRIVE
0112 ** 5" SINGLE DENSITY => 10 SECTORS/TRACK
0113 *
0114 DE24 0A 0A 0A 0A DNSTBL FCB 10,10,10,10 ALL MINIS
0115 *
0116 ** DRIVE & DISK CHARACTERISTICS
0117 *
0118 * BITS 1,0 STEPPING RATES
0119 * BIT 2 TRACKS/DISK (0=40 TRACK, 1=80 TRACK)
0120 * BIT 3 TRACKS/DRIVE (0=40 TRACK, 1=80 TRACK)
0121 *
0122 0008 BDVTPI EQU $08
0123 0004 BDKTPI EQU $04
0124 DE28 DDCTBL EQU *
0125 DE28 0C FCB BDVTPI+BDKTPI+SMR6
0126 DE29 0C FCB BDVTPI+BDKTPI+SMR6
0127 DE2A 03 FCB SMR40
0128 DE2B 03 FCB SMR40
0129 *
0130 ** DISK DRIVERS
0131 *
0132 * DRIVER INITIATION
0133 *
0134 DE2C 8E DE 1E INITDR LDX #CURDRV
0135 DE2F C6 05 LDB #5
0136 DE31 6F 80 INITD2 CLR ,X+
0137 DE33 5A DECB
0138 DE34 26 FB BNE INITD2
0139 DE36 39 WARMD1 RTS
0140 *
0141 * READ ONE SECTOR
0142 *
0143 DE37 8D 32 READSC BSR SEEK1
0144 DE39 86 8C LDA #IREAD+BBLEN+BEHLD
0145 DE3B 1A 10 READ2 ORCC #$10
0146 * SEI DISABLE INTERRUPTS
0147 DE3D B7 E0 18 STA CMDREG
0148 DE40 17 01 36 LBSR DLY47
0149 DE43 C6 00 LDB #$00
0150 DE45 B6 E0 18 RDLOOP LDA CMDREG
0151 DE48 85 02 BITA #$02
0152 DE4A 26 08 BNE RDBYTE
0153 DE4C 85 01 BITA #$01
0154 DE4E 26 F5 BNE RDLOOP
0155 DE50 1F 89 TFR A,B
0156 DE52 20 0A BRA RDEXIT
0157 *
0158 DE54 B6 E0 1B RDBYTE LDA DATREG
0159 DE57 A7 80 STA ,X+
0160 DE59 5A DECB
0161 DE5A 26 E9 BNE RDLOOP
0162 DE5C 8D 05 BSR WAIT
0163 DE5E C5 1C RDEXIT BITB #$1C
0164 DE60 1C EF ANDCC #$EF
0165 * CLI
0166 DE62 39 RTS
0167 *
0168 ** WAIT UNTIL CONTROLLER READY
0169 *
0170 DE63 F6 E0 18 WAIT LDB CMDREG
0171 DE66 C5 01 BITB #$01
0172 DE68 26 F9 BNE WAIT
0173 DE6A 39 RTS
0174 *
0175 ** SEEK1 TRACK AND SECTOR
0176 ** ACCA = TRACK NUMBER
0177 ** ACCB = SECTOR NUMBER
0178 *
0179 DE6B F7 E0 1A SEEK1 STB SECREG SET SECTOR
0180 DE6E C1 0A CMPB #10 DOUBLE-SIDED ?
0181 DE70 22 0B BHI SEEK2 DOUBLE SIDED, FLIP
0182 DE72 F6 DE 1E LDB CURDRV BACK SIDE OF DISK ?
0183 DE75 C1 01 CMPB #1 DRIVE 2-3 BACK SIDE
0184 DE77 22 07 BHI SEEK3
0185 DE79 C4 BF ANDB #$FF-SIDESL SELECT SIDE 0
0186 DE7B 20 07 BRA SEEK4
0187 *
0188 DE7D F6 DE 1E SEEK2 LDB CURDRV SELECT SIDE 1
0189 DE80 C4 01 SEEK3 ANDB #DRIVSL
0190 DE82 CA 40 ORB #SIDESL
0191 DE84 F7 E0 14 SEEK4 STB DRVREG
0192 *
0193 DE87 B1 E0 19 CMPA TRKREG DIFFERENT TO LAST ?
0194 DE8A 27 49 BEQ FOUND
0195 DE8C 34 02 PSHS A SAVE TRACK NO. ON STACK
0196 *
0197 * IF 80 TRACK DRIVE, & 40 TRACK DISK, FIRST SEEK
0198 * SHOULD NOT UPDATE TRACK REGISTER NOR VERIFY.
0199 *
0200 DE8E B0 E0 19 SUBA TRKREG CALC. DIFFERENCE
0201 DE91 1F 89 TFR A,B
0202 DE93 34 20 PSHS Y
0203 *
0204 ** GET STEPPING RATE FROM TABLE
0205 *
0206 DE95 10 8E DE 28 LDY #DDCTBL
0207 DE99 B6 DE 1E LDA CURDRV
0208 DE9C 84 01 ANDA #$01
0209 DE9E A6 A6 LDA A,Y
0210 DEA0 35 20 PULS Y
0211 *
0212 ** CHECK DRIVE AND DISK TYPE
0213 *
0214 DEA2 85 08 BITA #BDVTPI DRIVE TRACK DENSITY = 48 TPI ?
0215 DEA4 27 19 BEQ SEEKVU YES, SKIP
0216 DEA6 85 04 BITA #BDKTPI DISK TRACK DENSITY = 96 TPI ?
0217 DEA8 26 15 BNE SEEKVU YES, SKIP (DRIVE & DISK MATCH)
0218 *
0219 ** HERE IF 40TRACK DISK IN 80 TRACK DRIVE
0220 ** USE STEP INSTRUCTIONS TO PREVENT UPDATE OF TRACK REG.
0221 *
0222 DEAA 84 03 ANDA #$03 LEAVE STEPPING RATE BITS
0223 DEAC 5D TSTB
0224 DEAD 2A 05 BPL STEPIN
0225 DEAF 50 NEGB
0226 DEB0 8A 60 ORA #ISTOUT
0227 DEB2 20 02 BRA STEPLP
0228 DEB4 8A 40 STEPIN ORA #ISTIN
0229 DEB6 34 04 STEPLP PSHS B
0230 DEB8 8D 11 BSR SEEK5
0231 DEBA 35 04 PULS B
0232 DEBC 5A DECB
0233 DEBD 26 F7 BNE STEPLP
0234 *
0235 ** SEEK TRACK WITH VERIFY & UPDATE
0236 *
0237 DEBF 84 03 SEEKVU ANDA #$03 RETAIN STEPPING RATE
0238 DEC1 8A 18 ORA #ISEEK+BHDLD ($18)
0239 DEC3 35 04 PULS B RESTORE DEST TRACK NO.
0240 DEC5 F7 E0 1B STB DATREG YES, SEEK1 NEW TRACK
0241 DEC8 17 00 AE LBSR DLY47
0242 DECB B7 E0 18 SEEK5 STA CMDREG
0243 DECE 17 00 A8 LBSR DLY47
0244 DED1 8D 90 BSR WAIT
0245 DED3 C5 10 BITB #$10 CHECK FOR SEEK1 ERROR
0246 DED5 7E DF 79 FOUND JMP DLY47
0247 *
0248 ** WRITE SECTOR TO DISK
0249 *
0250 DED8 8D 91 WRITSC BSR SEEK1
0251 DEDA 86 AC LDA #IWRITE+BBLEN+BEHLD ($AC)
0252 DEDC 1A 10 WRITE2 ORCC #$10
0253 * SEI
0254 DEDE B7 E0 18 STA CMDREG
0255 DEE1 17 00 95 LBSR DLY47
0256 DEE4 C6 00 LDB #$00
0257 DEE6 B6 E0 18 WRLOOP LDA CMDREG
0258 DEE9 85 02 BITA #$02
0259 DEEB 26 08 BNE WRBYTE
0260 DEED 85 01 BITA #$01
0261 DEEF 26 F5 BNE WRLOOP
0262 DEF1 1F 89 TFR A,B
0263 DEF3 20 0B BRA WREXIT
0264 *
0265 DEF5 A6 80 WRBYTE LDA ,X+
0266 DEF7 B7 E0 1B STA DATREG
0267 DEFA 5A DECB
0268 DEFB 26 E9 BNE WRLOOP
0269 DEFD 17 FF 63 LBSR WAIT
0270 DF00 C5 5C WREXIT BITB #$5C
0271 DF02 1C EF ANDCC #$EF
0272 * CLI
0273 DF04 39 RTS
0274 *
0275 ** VERIFY SECTOR WRITTEN
0276 *
0277 DF05 86 8C VERIF1 LDA #IREAD+BBLEN+BEHLD ($8C)
0278 DF07 1A 10 VERIF2 ORCC #$10
0279 * SEI
0280 DF09 B7 E0 18 STA CMDREG
0281 DF0C 17 00 6A LBSR DLY47
0282 DF0F 17 FF 51 LBSR WAIT
0283 DF12 1C EF ANDCC #$EF
0284 * CLI
0285 DF14 C5 18 BITB #$18
0286 DF16 39 RTS
0287 *
0288 ** SEEK TRACK ZERO
0289 *
0290 DF17 34 10 RESTR1 PSHS X
0291 DF19 8D 1A BSR DRVSEL
0292 DF1B 8E DE 28 LDX #DDCTBL
0293 DF1E B6 DE 1E LDA CURDRV
0294 DF21 84 01 ANDA #1
0295 DF23 A6 86 LDA A,X
0296 DF25 84 03 ANDA #$03
0297 DF27 8A 08 ORA #IREST+BHDLD
0298 DF29 B7 E0 18 STA CMDREG
0299 DF2C 8D 4B BSR DLY47
0300 DF2E 17 FF 32 LBSR WAIT
0301 DF31 C5 D8 BITB #$D8 CHECK FOR ERROR
0302 DF33 35 90 PULS X,PC
0303 *
0304 ** SELECT DRIVE
0305 ** IX -> FCB
0306 ** ACCA = NEW DRIVE NUMBER
0307 *
0308 * SAVE OLD TRACK NUMBER IN TABLE
0309 * AND SET UP TRACK FOR NEW DRIVE
0310 *
0311 *
0312 DF35 A6 03 DRVSEL LDA 3,X
0313 DF37 81 03 CMPA #3
0314 DF39 23 05 BLS DRSEL1
0315 DF3B C6 0F LDB #$0F SET ERROR VALUE
0316 * SEC
0317 DF3D 1A 01 ORCC #$01
0318 DF3F 39 RTS
0319 *
0320 * SAVE TRACK POSITION OF PREVIOUS DRIVE
0321 *
0322 DF40 8D 2D DRSEL1 BSR PNTDRV
0323 DF42 F6 E0 19 LDB TRKREG
0324 DF45 E7 84 STB ,X
0325 *
0326 * SELECT NEW DRIVE
0327 *
0328 DF47 B7 DE 1E DRSEL3 STA CURDRV MAY BE 0 - 3
0329 DF4A 81 01 CMPA #1
0330 DF4C 23 04 BLS DRSEL4 ONE DIRECTORY ?
0331 DF4E 84 01 ANDA #DRIVSL ROUND OFF
0332 DF50 8A 40 ORA #SIDESL SELECT SIDE 1
0333 DF52 B7 E0 14 DRSEL4 STA DRVREG
0334 *
0335 * RESTORE LAST TRACK POSITION FOR THIS DRIVE
0336 *
0337 DF55 8D 18 BSR PNTDRV
0338 DF57 A6 84 LDA ,X
0339 DF59 B7 E0 19 STA TRKREG
0340 DF5C 8D 1B BSR DLY47
0341 DF5E 20 0B BRA OK
0342 *
0343 ** CHECK IF DRIVE READY
0344 *
0345 DF60 A6 03 CHKDRV LDA 3,X
0346 DF62 81 03 CMPA #3
0347 DF64 23 05 BLS OK
0348 DF66 C6 80 LDB #$80
0349 * SEC
0350 DF68 1A 01 ORCC #$01
0351 DF6A 39 RTS
0352
0353 DF6B 5F OK CLRB
0354 * CLC
0355 DF6C 1C FE ANDCC #$FE
0356 DF6E 39 RTS
0357 *
0358 * POINT TO TRACK TABLE ENTRY FOR THIS DRIVE
0359 *
0360 DF6F 8E DE 1F PNTDRV LDX #TRKTBL
0361 DF72 F6 DE 1E LDB CURDRV
0362 DF75 C4 01 ANDB #DRIVSL
0363 DF77 3A ABX
0364 DF78 39 RTS
0365 *
0366 ** DELAY ROUTINE
0367 *
0368 DF79 17 00 00 DLY47 LBSR DLY19
0369 DF7C 17 00 00 DLY19 LBSR DLY5US
0370 DF7F 39 DLY5US RTS
0012 END
0013 END COLDS
Program + Init Data = 5328 bytes
Error count = 0
/branches/before_delete/src/flex9/flex9ide.sh
0,0 → 1,3
../../Tools/as09/as09.exe flex9ide.asm -l > flex9ide.lst
../../Tools/epedit/epedit.exe flex9ide.aux
 
/branches/before_delete/src/flex9/FLEX9IDE.S19
0,0 → 1,170
S123C7007EC7217EC7037EC7477EC7857EC7957EC71F0C00000000C810C810000000003BDC
S123C720121A10BECC3110EF027DCC3426118ECCFC7CCC346D842707BFCC3110EE023B8ED3
S123C740CCF87FCC3420F11A107DC71B2729BEC719A6843402EC018ECAC0ED88403502A712
S123C760036F848601A7026F88226F883B7DC71E2729113F1220F61CEFAD9FD3ED7FCCFCBC
S123C780113F1220F41A107DCC302705113F1220F47CCC30397FCC301CEF397DC71D2627BC
S123C7A08ECAC0BDD406261F7DC71C270F7FC71C810A270F3402860A8D3C3502810D26034B
S123C7C0B7C71C8D3120D4860D8D2B860A8D27B6C7128D227FC71DBEC7196D0327056A0332
S123C7E07EC74730048CC84026038EC810BFC7197AC71B7EC747BDCCD82B05113F1220F6C2
S106C8007ECCE403
S113C840FF000000535441525455500054585400B2
S123CA002006BDCAAC39C0A08639B7D3FDBECC2B308900A1BFCA06AD9FD3F1BED3FBBFCD14
S123CA200ABFCD0DBED3F9BFCD10BFCD13BED3F7BFCD4F8E00A0C6B9A684E78412E1842648
S123CA400BA78430890400BCCA0626EC3089FF5FBFCC2B8ECD03BFCC168ECADCBDCE81BD78
S123CA60CEB58D9EBDCEB58EC8408601A784BDD4062708A601BDD2007ECD678EC080BFCC75
S123CA80148EC840BDD406270534307ED2D7BECC14A780810D26E78EC840BDD1F48EC08054
S123CAA0BFCC148ECD67BFCC437ED32E8ECAECBDCE81BDCE2B8D1425F3B7CC0E8D0D25ECC9
S123CAC0B7CC0F8D0625E5B7CC1039BDD175250BB6CC1C5D27031CFE391A01393638303981
S121CAE020464C45582056332E3031044441544520284D4D2C44442C5959293F20048B
S123CC0008183A190004400000FF1B0001000000000000000000000000000000000000003E
S11ECC200000000000000000000000BFFF000001000000000000000000000036
S104CC496086
S123CC4E2B2B2B043F3F3F04574841543F0443414E2754205452414E53464552044E4F543E
S123CC6E20464F554E44044449534B204552524F52202304445249564553204E4F54205296
S11DCC8E454144590447455400D20F4D4F4E00D34B00271003E80064000A08
S123CD007ECD577ECD677ECDB17ECD097ECD0C7ECD0F7ECD127ECEFB7ECF417ECE2B7ECEC5
S123CD20817ECFED7ECEB57ED00E7ECDEA7ED0367ED1A27ED0EB7ED3497ECF867ECFD47EE8
S123CD40D27F7ED12F7ECFD07ED1757ED3297ECD4E7ECE057ECE0510CEC07F7FCC11BDD460
S123CD60007FCC28BDD3FD10CEC07FBDDE188ECD03BFCC168EC700AF9FD3E9BED3E7AF9FBB
S123CD80D3EB8ECCF8BFCC317FCC347FCC4C8D5AB6CC11B1CC0226057CCC1520147DCC2887
S123CDA010260597BDD40326B28ECC4EBDCE818D7ABDD0D4810D27E58EC8407CCC0DBDD003
S123CDC03625168ECC938D3E2709BECC1227078D3526036E9801BDD22E8ECC568615B7CCAF
S123CDE020BDCE817FCC117ECD67BECD13BFCD10BECD0DBFCD0A7FCC237FCC227FCC217FC7
S123CE00CC267FCC2439108EC844A6A0815F23028020A18026086D8426F06DA4270C6D8058
S123CE2026FC30026D8426DE1CFB398EC080BFCC14BDCEFBB1CC01271DB1CC00271F810D4F
S123CE40270D810A2732811F23E78CC0FF27E2A780810D26DC398ECC528D2620CE8CC080AF
S123CE6027F4301FB6CC07810826088620BDCF66B6CC07BDCF6620B9860DBDCF41862020F2
S123CE80C98D32A6848104276FBDCF41300120F3BDCD4E2765AD9FD3E5B1CC0A265C7FCCF4
S123CEA01AAD9FD3E5B1CC0A2750810326F37FCC116E9FCC167DCC2126278DD4B6CC0327A6
S123CEC020B1CC1A22187FCC1A7DCC0927028DCE3404F6CC0827058D085A26FB35047CCC63
S123CEE01A860D8D5C860A8D583404F6CC0527064F8D4E5A26FA35041CFE397DCC23261A1B
S123CF007DCC2627108D1A7DCC2F27117DCC24270C8D532008BDCD092003BDCD0C7FCC1AB7
S123CF2039BFCC47BECC262006BFCC47BECC24BDD4062604BECC47397FCC24BDD27F7ECDF9
S123CF40037DCC212620811F22057FCC2920177CCC293402B6CC04270BB1CC292406BDCEEE
S123CF60B57CCC29350234027DCC2226137DCC2427048DB5200D7DCC262608BDCD0F200316
S123CF80BDCD123502397FCC4AF7CC1D8604B7CC4DEC848ECCA08D0B30027ACC4D26F71FAF
S123CFA098203D7FCC4B10A3842507A3847CCC4B20F43402B6CC4B26107DCC4A260B7DCC6B
S123CFC01D270B86208D2320057CCC4A8D1235828D023001A6848D04A684200444444444C2
S123CFE0840F8B30813923028B077ECF4181302514813923168141250C815A230E816125FD
S123D00004817A23061A01B7CC11391CFE393410BECC14B6CC18B7CC19A680B7CC18810D42
S123D0202710B1CC02270BBFCC1481202604A18427E78DB935908615A70186FFA7036F0477
S123D0406F0CBDD0D48608B7CC4B8D34252E260F8D2E25282609BCCC3F276C8D232368BEC1
S123D060CC3F6D0427616D032A0F7DCC0D2705B6CC0B2003B6CC0CA7037FCC0DBECC3F393B
S123D0808D8C254381392215BECC3F6D032A388403A703BDD00E242F812E1CFE39F6CC4B51
S123D0A02B253404C005F7CC4B3504B1CC4925028020A70430015ABDD00E2408812D270475
S123D0C0815F26065D26E41A01395D27CB6F0430015A20F6BFCC3FBECC14A68481202604C5
S123D0E0300120F6BFCC14BECC3F393430E60C2618108ED10B810B2210C6033D31A5C603D3
S123D100A6A0A70C30015A26F735B042494E545854434D4442415353595342414B5343524D
S123D1204441544241434449525052544F5554BDD21EBDD00E25228D2625183404C6047886
S123D140CC1C79CC1B5A26F73504BBCC1CB7CC1C5C20DFBDD00E24FB39BECC1B1CFE3980CB
S123D160472A0F8B062A048B072A078B0A2B031CFE391A0139BDD21EBDD00E25DC8139221A
S123D180D2840F34043402FCCC1B584958495849F3CC1BF3CC1BEBE08900FDCC1B35045C71
S123D1A020D67FCC1D8D3D81022715811626F68D33B7CC1E8D2EB7CC1F8601B7CC1D20E5E7
S123D1C08D221F898D1E1E89F3CC1BFDCC3D8D141F894D27D08D0DBECC3DA780BFCC3D5A8B
S123D1E026F320C18EC840BDD4062711A6018108260E32628604A784BDD406260D1CFE3902
S123D200B7CC20810426031A01398D737ECDE486008D35250F8D077CCC4C8D8620F14F5FC0
S123D220FDCC1B39F6CC4C1027FBAE7ECD0386028D228DEABDD1A2F6CC1D27046E9FCC1EB2
S123D2408ECC5C86817ECDDE34028EC840BDD0363502251A8EC840BDD0EB8EC8408601A70D
S123D26084BDD1E4102500BB86FFA7883B39B6CC11810D2707B1CC021026FB5D1A013934B8
S123D28030A601B7CC202763BDCDEA10BECC2D260881102758108ED3618EC8406D02270906
S123D2A08604A784BDD406262E8EC838C60B8D6E8EC840B6CC0BA7038601A784BDD4062634
S123D2C016B6CC204A47474C6F8820A788218615A784BDD406271E8ECC75BDCE81BECC3FC1
S123D2E0B6CC20A7016F845FBDCF8635B08ECC82BDCE8120F6BDCEB58EC840B6CC204A8453
S123D30003C63F3DCB04E78822BDD40626C9BDCF41810D26F48604A784BDD40620CD3430CC
S123D3207ED1008ECC6B7ECDE13506FDCC4310FFCC457FCC207CCC287ECDB87FCC2810FEE3
S123D340CC45F6CC206E9FCC433A397DCCFC26046E9FD3F38EC840861BA701BDD27F7ECDCD
S10FD360674552524F525300005359537A
S106CCC07ED370AC
S106CCD87ED37094
S106CCE47ED37088
S10BCCF801000000000000002F
S11BD370397ED3706E9FF8046E9FF8006E9FF8086E9FF80A6E9FF80672
S123D3E5D374D370DFC2DFC8D370D370D370D378D371D37CD380D3847ECA007ED4367ED4DF
S123D405597ED47B204449534B204F5045524154494E472053595354454D20434F50595217
S123D4254947485420284329203139383020425920544543484E4943414C205359535445F3
S111D4454D5320434F4E53554C54414E5453B7
S123D435FFBDDE158ED409C60A8D118E0005BFD413BFD4157FD41A8ED41BC61A6F805A2631
S123D455FB7EC70CBDC709BED40927EB3088E4BFD40B3420BDDAC3352024ECBED40B6F02D2
S123D475BDC70CC6FF397DCCFC2703BDC7093424BFD40B6F01E6842622E602271AC10227DE
S123D49511BDD5B4BED40B25267DCCFC26235F352439BDD6CF20EDC6122014C1162304C676
S123D4B501200C5A588ED4CEAD95BED40B2402E701BDC70C6D01352439D986D9D9DAF9DA09
S123D4D5C3D5E2D81DD838D876D641D69FD969DBD6DB2CD699DA87D810D56FD590DB07DDC0
S123D4F5BDDCFBDCE58D202605C6021A0139ED84AE846F846F01398D0E2705C60D1A01399D
S123D515EC94ED841CFE39FCD40BC3001C8ED40910AE8426031CFB3910A384260139AE8405
S123D53520EEBED40B4F5F8D02C62FA7881130015A26F839BED40BC60BA604A78824300137
S123D5555A26F639BED40BC60BA6043402A68824A1E0260530015A26F039BED40BE6025404
S123D5752479E688237ED600BED40BE688226C88223AA788405C261F1A0139BED40BE602AA
S123D595C403C1032655CA80E702E60FC580260AE688233AA788401CFE39C60B1A0139A677
S123D5B5883B2B3C27076A883B8620201D8D31251B8118221527F68109260C8D23250DBEA3
S123D5D5D40BA7883B20D84D27E31CFE39BDDAB1250985012705A7847ED9A0C6121A0139D1
S123D5F5BED40BE68822270A6C88223AA688401CFE398D0324EA39BED40BEC88406C882166
S123D61526036C882010830000271CED881E34028604A7882235028D132410C5802704C6F9
S123D635102006C6092002C6081A01398D25BED40BBDDE0C25128D11BDDE0026031CFE39A6
S123D65534048D17350424EE39BED40BEC881E308840394FB7D411B7D41239C5102611C55F
S123D675802624F6D4115CC1072705F7D41120147FD411F6D4125CC104270CF7D412BED489
S123D6950BBDDE091CFE391A01398DC7BED40BBDDE0C2520BED40B8DB0BDDE03260AB6D40C
S123D6B5352737BDDE062732C540260B34048DAB350424E039C6201A0139BED40BE6883B28
S123D6D52B3D8120260F5CE7883BC17F260C200D8D0B24E6395D272720F61CFE393402C168
S123D6F50126048620201086098D143502250F3402BED40BA6883B6F883B8D03350239BE49
S123D715D40BE602C1021026FED1E68822C104260834028D213502250FBDD57D240AC60488
S123D735BED40BE788221CFE39BED40B4F5FED8820ED88422027E688122622E688172744B9
S123D7556F88178D3F252A8DE025268DDC2522BED40BC602E78817EC88117EDC828D0EBE7A
S123D775D40BED8840BDD69F241A7EDBC18D03EC8439BED40BE60386063D8ED41D3ABFD49E
S123D7951B6D84398DE72605C6071A0139BED40BED88136D88122603ED88116C881626035D
S123D7B56C88156D8817270BBDDC4325DDBED40BEC8813BDD62025D2BED40BEC88403406D2
S123D7D58DB03506ED84260A6F026F036F046F05200810AE04313F10AF044FBED40B6C8850
S123D7F52126036C88205FA7884030015A26F8BED40BEC8820ED88421CFE395F3404C603A0
S123D815200EBED415BFD413F6D4133404F6D414BED40BE788413504E788407FD4185FE79B
S123D835882239BED40BE68822261DBDD60C2530BED40B7DD4182605DC44FDD4188610A711
S123D8558822EC881EED882FA68822A78831C6183414BDD5F53514A70430015A26F21CFEC1
S123D87539BED40BA68831A78822C6183414A604BDD714351430015A26F27ED69FBED40B15
S123D895A603A78823B6D4177DD41A2631A703BED415BFD4138C0005270C8D222337BED4BB
S123D8B518BFD41320EFBED40BA68823A7032A0EBDDDBD25368D07231CBDDDAD20F2BED442
S123D8D50B7FD41ABDD549BDD81DBDD8382407C10827181A0139BED40BA604270C2A028DA3
S123D8F50FBDD55926E41CFE398D051CFB1CFE39A68833260CEC882FED8832A68831A78851
S123D9153439BDD78726178D182515C60610BED40BBED41BA6A85D3121A7805A26F61CFE70
S123D93539BDD810BDD60C2508BED40BC610E7882239BDD7878DEA25F8C60610BED40BBE01
S123D955D41BA680A7A85D31215A26F6BDD69F24E07EDBC1BED40B8602A702EC882FED88EF
S123D9751EBDD6412508BDD87624057EDBC1C60A39BDD4FA253DBDD8922538263BBED40BA9
S123D9957DD41A2706A60F85202629BDDCC0252AEC8811ED8840BDDA76E688172713340447
S123D9B5BDD60C3504250C5A26F4BED40B5FE788221CFE39C6112002C6043404BDD50C3523
S123D9D5041A0139BED40B6D032A08BDDDBD2403C61039BDD4FA25E2BDD537BDD91725DA03
S123D9F5BDD89225D52604C60320CFBDDCC025CABED40BC60A6F0F30015A26F9BED40BECA5
S123DA1588322727ED882FA68834A78831FCCC0EED8819B6CC10A7881BBDDDADBDD96925D4
S123DA35998D3E8604A788221CFE39BED40B6F88176C8812EC882FBDD620250DBDD77225D7
S123DA5508BDD69F2406BDDBC17ED9CFBED40BEC881EED88328610A78834BDD94725EA20EF
S123DA758ABED40BA684A7026F846F883B4FA78822398D28250E6F84441025FB7AC604E71B
S123DA9588221CFE39BED40BA6028183260B8603A702BDD69F102501131CFE398DE7250D50
S123DAB5BED40BA602810323F0C6121A01398DEC253181022708BED40B6F027ED50CA68829
S123DAD5122605BDDBA720198DC82517BED40B6D88172705BDDC98250ABDD9692505BDD9F3
S123DAF54724D339BDD9862528BDD60C252386032018BDD986251ABED40BA60F858026129B
S123DB15EC8813BDD62025098602BED40BA7021CFE39C60B1A01398D35BDD892252A2724BB
S123DB35BED40BC60BA68824A70430015A26F68D4D2515BED40BA60F858026D6856026093F
S123DB558D0C2055C6031A0139C60C1A0139BED40B860BB7D411A604E68835A78835E704F5
S123DB7530017AD41126EFBED40BA60C260CC603A6883DA70C30015A26F6BED40B398DCEA7
S123DB95BDD89225072606BED40B1CFE39C6041A0139BED40B86FFA704BDD969BED40B86F0
S123DBB500A70239ED8840BDD69F2414C5402608C580270AC6102006C60B2002C60A1A01C8
S123DBD539BDD917255E8DB8255ABED40BA60F8580265285602652BDD787BED41BEC0226F7
S123DBF50FBED40BEC88112733BED41BED842014BED40BBDD620252CBED40BEC8811271C29
S123DC158DA22520BED40BEC8813BED41BED02BED40BEC8815BED41BE304ED04BDDBA725A8
S123DC3503BDD94739C60B2002C60C1A0139EC881E5CE1883C2303C6014C10A38813260E4B
S123DC55A6883781FF27074CA788371CFE398D332530BED40BA6883A8B032616EC881E100D
S123DC75A388112705C6171A0139EC8840ED88388604A7883AEC8813ED88358601A7883780
S123DC951CFE39EC8838BDD62025F7BED40B1F12E6883A3AC603A6A8353121A788403001AF
S123DCB55A26F3BDD69F24DA7EDBC1BDD810BDD60C2546BED40B4F5FED8820A68867A7883B
S123DCD53C5F6F884030015A26F8BED40B1CFE39BED40BA68817271DEC88208300012A0355
S123DCF57EDD9AED8820BDDAB1250E4624076F84A688172605C6121A01397FD411EC88111D
S123DD1510AE8820276ABDDD9F25EE4F5F6D022774EB028900BFD40FBED40B10A3882024BB
S123DD352CBED40F30033402B6D4114CB7D4118154270881A83502274C20D23404BED40B73
S123DD55EC88408D45253E3504350220C0A38820BED40FA6023404A0E04A1F89A684EB011D
S123DD75BED40B2505E1883C2306E0883C4C20F5BDD6202514BED40BEC884210A38820272F
S123DD9514C6192002C6181A0139BDD6202508BED40BC6443A1CFE39BED40BC60BA688244F
S123DDB5A70430015A26F639BED40BA6034C8104240FA7032605BDDE0F2003BDDE1225E819
S109DDD539C6101A0139E1
S123DE007EDE537EDE747EDE967EDE337EDE987EDEA47EDEA47EDE1F7EDE527EDE3800CC81
S123DE200006FDE11ECC0002FDE11ECC00E0FDE10C20758D634FC6015A34024FFDE106E638
S123DE40E4FDE108F6DE1EFDE10AC601FDE10435025F398DE3CC0020FDE10E8D4B3420101E
S123DE608E01008D52FCE100E780313F26F535208D365F398DC2CC0030FDE10E8D2A34206F
S123DE80108E01004F8D30E680FDE100313F26F535208D145F395F39A603810323014FB787
S122DEA0DE1E5F39A6035F39FCE10EC58026F9FCE10EC54027F239FCE10EC50827F939E8
S9030000FC
/branches/before_delete/src/flex9/flex9cf8.aux
0,0 → 1,9
t m
l FLEX9CF8.S19
t h
s flex9_cf8_b16_0.vhd c000 c7ff
s flex9_cf8_b16_1.vhd c800 cfff
s flex9_cf8_b16_2.vhd d000 d7ff
s flex9_cf8_b16_3.vhd d800 dfff
q
 
/branches/before_delete/src/flex9/f9-spool.txt
0,0 → 1,134
*
** PRINTER SPOOLING
*
ORG $C700
PRSPL1 JMP ZC721
PRSPL2 JMP *
PRSPL3 JMP ZC747
PRSPL4 JMP ZC785
PRSPL5 JMP ZC795
PRSPL6 JMP ZC71F
*
** SPOOLER SCRATCH AREA
*
ZC712 FCB $0C,$00,$00,$00,$00,$C8,$10
ZC719 FCB $C8,$10
QCNT FCB $00
ZC71C FCB $00
ZC71D FCB $00
ZC71E FCB $00
*
ZC71F RTI
NOP
*
ZC721 ORCC #$10
LDX ZCC31
STS 2,X
TST ZCC34
BNE ZC73F
LDX #ZCCFC
INC ZCC34
TST ,X
BEQ ZC73F
ZC738 STX ZCC31
LDS $02,X
RTI
*
ZC73F LDX #ZCCF8
CLR ZCC34
BRA ZC738
*
ZC747 ORCC #$10
TST QCNT
BEQ ZC777
LDX ZC719
LDA ,X
PSHS A
LDD $01,X
LDX #ZCAC0
STD $40,X
PULS A
STA $03,X
CLR ,X
LDA #$01
STA $02,X
CLR $22,X
CLR $3B,X
ZC76D TST ZC71E
BEQ ZC79B
SWI3
NOP
BRA ZC76D
*
ZC777 ANDCC #$EF
ZC779 JSR [TOFVEC]
CLR ZCCFC
SWI3
NOP
BRA ZC779
*
ZC785 ORCC #$10
TST ZCC30
BEQ ZC791
SWI3
NOP
BRA ZC785
*
ZC791 INC ZCC30
RTS
*
ZC795 CLR ZCC30
ANDCC #$EF
RTS
*
ZC79B TST ZC71D
BNE ZC7C7
LDX #ZCAC0
JSR FMS
BNE ZC7C7
TST ZC71C
BEQ ZC7BC
CLR ZC71C
CMPA #$0A
BEQ ZC7C3
PSHS A
LDA #$0A
BSR ZC7F6
PULS A
ZC7BC CMPA #$0D
BNE ZC7C3
STA ZC71C
ZC7C3 BSR ZC7F6
BRA ZC79B
*
ZC7C7 LDA #$0D
BSR ZC7F6
LDA #$0A
BSR ZC7F6
LDA ZC712
BSR ZC7F6
CLR ZC71D
LDX ZC719
TST $03,X
BEQ ZC7E3
DEC $03,X
JMP ZC747
*
ZC7E3 LEAX $04,X
CMPX #FCB
BNE ZC7ED
LDX #ZC810
ZC7ED STX ZC719
DEC QCNT
JMP ZC747
*
ZC7F6 JSR PCHK
BMI ZC800
SWI3
NOP
BRA ZC7F6
*
ZC800 JMP POUT
ZC810 EQU $C810
ZC838 EQU $C838
END
/branches/before_delete/src/flex9/f9-dkram.txt
0,0 → 1,192
*
** FLEX 9 DISK DRIVERS
*
* FOR SYS09BUG ON THE DIGILENT SPARTAN 3 STARTER BOARD
* WITH I/O MAPPED AT $XE000
* AND ROM MAPPED AT $XF000
* THE DIGILENT SPARTAN 3 STARTER BOARD HAS 1MBYTE OF SRAM
* THE FIRST 64K IS USED BY FLEX,
* THE SECOND 192K IS USED AS A ROM DISK
* THE REMAINING RAM IS USED FOR A RAM DISK
*
* These drivers should also work on the B5-X300 board
* although there is only enough room for the ROM Disk.
*
IMASK EQU $10 IRQ MASK CC
FMASK EQU $40 FIRQ MASK CC
TRPAGE EQU $0E PAGE $E000 DAT ADDRESS
DATREG EQU $FFF0 DAT REGISTERS
ORG $DE00
*
* DISK DRIVER JUMP TABLE LAST UPDATE: 22/12/2006
* Disk driver for RAM Disk.
*
* 14 SECTORS PER TRACK
* 16 * N TRACKS PER DISK
*
* ROM DISK OCCUPIES $10000 - $1E000, $20000 - $2E000, $30000 - $3E000
* RAM DISK OCCUPIES $40000 - $4E000 ... $F0000 - $FE000
* Track Buffer page mapped at $E000 - $EFFF
* TRPAGE = $0E = 14 x $1000 (4 K pages)
* LEAST SIGNIFICANT NYBBLE OF THE DAT IS INVERTED
* ON SWTPC ROM AT $XF000 AND IO AT $XE000
* APPEARS THROUGHOUT THE MEMORY SO MUST BE SKIPPED OVER
* WHEN USING RAM AS A RAMDISK.
* THE MSN OF THE TRACK MAPS INTO THE MSN OF THE DAT
* THE LSN OF THE TRACK NUMBER INDEXES INTO THE 4K RAM PAGE
* THE SECTOR MAPS INTO THE LSN OF THE DAT WHICH IS INVERTED
*
*
READ JMP READSC
WRITE JMP WRITSC
VERIFY JMP BUSY
RESTOR JMP RESTR1
DRIVE JMP DRVSEL
DRVRDY JMP CHKDRV
QUICK JMP CHKDRV
COLDDR JMP INITDR
WARMDR JMP WARMD1
SEEK JMP SEEKTS
*
* RAM SPACE
*
WRKDR FDB 0
WRKTR FDB 0,0,0,0
SECPTR FDB 0
TRKCNT FCB 0
SECCNT FCB 0
VERERR FCB 0
CCSAVE FCB 0
*
DRVBAS FCB $10 DRIVE 0
FCB $40 DRIVE 1
FCB $40 DRIVE 2
FCB $40 DRIVE 3
*
INITDR RTS
WARMD1 RTS
*
* Seek track and sector
* A holds track number (0-32)
* B holds sector number (1-14)
*
SEEKTS STA TRKCNT
STB SECCNT
ANDCC #$FE ; CLEAR CARRY
ORCC #$40 ; SET Z
RTS
*
* MAP RAM DISK INTO I/O SPACE
*
MAPIN TFR CC,A ; Save state of interrupt masks
STA CCSAVE
ORCC #FMASK+IMASK ; Mask interrupts while IO mapped out
LDA TRKCNT
LDU #DRVBAS ; Point to Drive base offset
LDB WRKDR ; Get working drive number
ADDA B,U ; Add Base offset into RAM
ANDA #$F0 ; Mask MSN
STA ,-S ; Save A on stack
*
LDA SECCNT
SUBA #1 ; Sectors 1 to 14 => 0 to 13
EORA #$0F ; Complement LSNybble
ANDA #$0F
*
ADDA ,S+ ; Add sector to LSN of Track and pop
STA DATREG+TRPAGE
*
LDA TRKCNT ; LSN of Track indexes into 4K page
ANDA #$0F
ADDA #TRPAGE*16
STA SECPTR
CLR SECPTR+1
LDU SECPTR
RTS
*
* MAP RAM DISK OUT OF MEMORY
*
MAPOUT LDA #TRPAGE ; Point to the I/O page
EORA #$0F ; Complement LSNybble
STA DATREG+TRPAGE ; map in I/O page
LDA CCSAVE ; restore interrupt masks
TFR A,CC
RTS
*
* READ DISK DRIVER
*
READSC LBSR SEEKTS ; SEEK TRACK & SECTOR
PSHS U,X
BSR MAPIN ; MAP RAM DISK INTO I/O SPACE
*
CLRB
READ3 LDA ,U+
STA ,X+ ; Move Sector to FCB
INCB
BNE READ3
*
BSR MAPOUT ; MAP RAM DISK OUT OF I/O SPACE
CLRB ; Z SET C CLEAR
PULS U,X,PC ; Restore registers and return
*
* WRITE DISK DRIVER
*
WRITSC BSR SEEKTS ; SEEK TRACK & SECTOR
PSHS U,X
BSR MAPIN ; MAP RAM DISK INTO I/O SPACE
*
CLRB
WRIT3 LDA ,X+ ; COPY FCB BLOCK TO RAM DISK
STA ,U+
INCB
BNE WRIT3
*
BSR MAPOUT ; MAP OUT RAM DISK
CLRB ; SET Z, CLEAR C
PULS U,X,PC ; Restore registers and return
*
* RESTORE DISK DRIVER (SEEK TRACK 00)
*
RESTR1 PSHS A
CLRA ; Track 0
LDAB #$01 ; Sector 1
LBSR SEEKTS
PULS A,PC
*
* CHECK FOR BUSY
* Doubles as VERIFY
*
BUSY CLRB Never busy
RTS
*
* DRIVE SELECT DISK DRIVER
*
DRVSEL PSHS X
LDA 3,X GET DRIVE # FROM FCB
CMPA #3
BLS DRVS2 IF > 3, SET IT TO 0
CLRA
DRVS2 BSR MXWT MOVE X TO WORKING TRK
LDB TRKCNT
STB 0,X SAVE TRACK
STA WRKDR SAVE DESIRED DRV AS WORKING DRV
BSR MXWT MOVE X TO WORKING TRK
LDA 0,X GET WORKING TRK ON DESIRED DRV
STA TRKCNT UPDATE 1771 TRACK REG
CLRB ; SET Z, CLEAR C
PULS X,PC
*
* MOVE INDEX REG TO POINT TO
* WORKING TRACK STORAGE
*
MXWT LDX #WRKTR POINT TO START OF STG
LDB WRKDR GET WORKING DRIVE
ABX
MXWT2 RTS
*
* CHECK DRIVE READY DISK DRIVER
*
CHKDRV LDA 3,X
CLRB ; CLEAR C, SET Z
RTS
END
/branches/before_delete/src/flex9/flex9ads.sh
0,0 → 1,192
../../Tools/as09/as09.exe flex9ads.asm -l > flex9ads.lst
/branches/before_delete/src/flex9/flex9cf8.lst
0,0 → 1,2857
Assembler release DWC_2.0 version 2.11
May 6, 2004 (c) Motorola (free ware)
0001 NAM FLEX9 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-cfdsk.txt"
0001 *
0002 ** FLEX 9 COMPACT FLASH DISK DRIVERS
0003 *
0004 * FOR SYS09BUG 1.2 ON THE BURCHED B5-X300
0005 * WITH I/O MAPPED AT $XE000
0006 * AND ROM MAPPED AT $XF000
0007 * THE BURCHED B5-X300 HAS 256KBYTES OF SRAM
0008 * THE FIRST 64K IS USED BY FLEX,
0009 * THE SECOND 192K MAY BE USED AS A RAM DISK
0010 *
0011 *
0012 0010 IMASK EQU $10 IRQ MASK CC
0013 0040 FMASK EQU $40 FIRQ MASK CC
0014 FFF0 DATREG EQU $FFF0 DAT REGISTERS
0015 *
0016 E040 CF_BASE EQU $E040
0017 E040 CF_DATA EQU CF_BASE+0
0018 E041 CF_ERROR EQU CF_BASE+1 ; read error
0019 E041 CF_FEATURE EQU CF_BASE+1 ; write feature
0020 E042 CF_SECCNT EQU CF_BASE+2
0021 E043 CF_SECNUM EQU CF_BASE+3
0022 E044 CF_CYLLO EQU CF_BASE+4
0023 E045 CF_CYLHI EQU CF_BASE+5
0024 E046 CF_HEAD EQU CF_BASE+6
0025 E047 CF_STATUS EQU CF_BASE+7 ; read status
0026 E047 CF_COMAND EQU CF_BASE+7 ; write command
0027 *
0028 * Command Equates
0029 *
0030 0020 CMDREAD EQU $20 ; Read Single sector
0031 0030 CMDWRITE EQU $30 ; Write Single sector
0032 00EF CMDFEATURE EQU $EF
0033 0001 FEAT8BIT EQU $01 ; enable 8 bit transfers
0034 00E0 HEADLBA EQU $E0
0035 *
0036 * Status bit equates
0037 *
0038 0080 BSY EQU $80
0039 0040 DRDY EQU $40
0040 0008 DRQ EQU $08
0041 0001 ERR EQU $01
0042 DE00 ORG $DE00
0043 *
0044 * DISK DRIVER JUMP TABLE
0045 *
0046 DE00 7E DE 4B READ JMP READSC
0047 DE03 7E DE 6C WRITE JMP WRITSC
0048 DE06 7E DE 8E VERIFY JMP BUSY
0049 DE09 7E DE 32 RESTOR JMP RESTR1
0050 DE0C 7E DE 90 DRIVE JMP DRVSEL
0051 DE0F 7E DE 9C DRVRDY JMP CHKDRV
0052 DE12 7E DE 9C QUICK JMP CHKDRV
0053 DE15 7E DE 1F COLDDR JMP INITDR
0054 DE18 7E DE 4A WARMDR JMP WARMD1
0055 DE1B 7E DE 37 SEEK JMP SEEKTS
0056 *
0057 * RAM SPACE
0058 *
0059 DE1E 00 DRVNUM FCB 0
0060 *
0061 *
0062 * INITIALIZE CF CARD FOR 8 BIT LBA MODE
0063 *
0064 DE1F 8D 7F INITDR BSR WAITRDY
0065 DE21 86 E0 LDA #HEADLBA
0066 DE23 B7 E0 46 STA CF_HEAD
0067 DE26 86 01 LDA #FEAT8BIT
0068 DE28 B7 E0 41 STA CF_FEATURE
0069 DE2B 86 EF LDA #CMDFEATURE
0070 DE2D B7 E0 47 STA CF_COMAND
0071 DE30 20 6E BRA WAITRDY
0072 *
0073 * RESTORE DISK DRIVER (SEEK TRACK 00)
0074 *
0075 DE32 8D 5C RESTR1 BSR DRVSEL
0076 DE34 4F CLRA ; Track 0
0077 DE35 C6 01 LDB #$01 ; Sector 1
0078 *
0079 * Seek track and sector
0080 * A holds track number (0 - ??)
0081 * B holds sector number (1 - ??)
0082 * Sector numbers starts from 1
0083 * subtract 1 to start from sector 0 on CF
0084 *
0085 DE37 5A SEEKTS DECB
0086 DE38 F7 E0 43 STB CF_SECNUM
0087 DE3B B7 E0 44 STA CF_CYLLO
0088 DE3E F6 DE 1E LDB DRVNUM
0089 DE41 F7 E0 45 STB CF_CYLHI
0090 DE44 C6 01 LDB #$01
0091 DE46 F7 E0 42 STB CF_SECCNT
0092 DE49 5F CLRB
0093 DE4A 39 WARMD1 RTS
0094 *
0095 * READ SECTORS FROM CF
0096 *
0097 *
0098 DE4B 8D EA READSC BSR SEEKTS
0099 DE4D 86 20 LDA #CMDREAD ; IDE READ MULTIPLE
0100 DE4F B7 E0 47 STA CF_COMAND
0101 DE52 8D 4C BSR WAITRDY
0102 *
0103 * READ LOOP
0104 *
0105 DE54 5F CLRB
0106 DE55 8D 58 RDLP1 BSR WAITDRQ
0107 DE57 B6 E0 40 LDA CF_DATA
0108 DE5A A7 80 STA ,X+
0109 DE5C 5A DECB
0110 DE5D 26 F6 BNE RDLP1
0111 *
0112 DE5F 5F CLRB
0113 DE60 8D 4D RDLP2 BSR WAITDRQ
0114 DE62 B6 E0 40 LDA CF_DATA
0115 DE65 5A DECB
0116 DE66 26 F8 BNE RDLP2
0117 *
0118 DE68 8D 36 BSR WAITRDY
0119 DE6A 5F CLRB
0120 DE6B 39 RTS
0121 *
0122 * WRITE SECTOR TO CF
0123 *
0124 DE6C 8D C9 WRITSC BSR SEEKTS ; SEEK TRACK & SECTOR
0125 DE6E 86 30 LDA #CMDWRITE; IDE WRITE MULTIPLE
0126 DE70 B7 E0 47 STA CF_COMAND
0127 DE73 8D 2B BSR WAITRDY
0128 *
0129 * WRITE LOOP
0130 *
0131 DE75 5F CLRB
0132 DE76 8D 37 WRTLP1 BSR WAITDRQ
0133 DE78 A6 80 LDA ,X+
0134 DE7A B7 E0 40 STA CF_DATA
0135 DE7D 5A DECB
0136 DE7E 26 F6 BNE WRTLP1
0137 *
0138 DE80 5F CLRB
0139 DE81 8D 2C WRTLP2 BSR WAITDRQ
0140 DE83 4F CLRA
0141 DE84 B7 E0 40 STA CF_DATA
0142 DE87 5A DECB
0143 DE88 26 F7 BNE WRTLP2
0144 *
0145 DE8A 8D 14 BSR WAITRDY
0146 DE8C 5F CLRB
0147 DE8D 39 RTS
0148 *
0149 * CHECK FOR BUSY
0150 * Doubles as VERIFY
0151 *
0152 DE8E 5F BUSY CLRB Never busy
0153 DE8F 39 RTS
0154 *
0155 * DRIVE SELECT DISK DRIVER
0156 *
0157 DE90 A6 03 DRVSEL LDA 3,X GET DRIVE # FROM FCB
0158 DE92 81 03 CMPA #3
0159 DE94 23 01 BLS DRVS2 IF > 3, SET IT TO 0
0160 DE96 4F CLRA
0161 DE97 B7 DE 1E DRVS2 STA DRVNUM
0162 DE9A 5F CLRB ; SET Z, CLEAR C
0163 DE9B 39 RTS
0164 *
0165 * CHECK DRIVE READY DISK DRIVER
0166 *
0167 DE9C A6 03 CHKDRV LDA 3,X
0168 DE9E 5F CLRB ; CLEAR C, SET Z
0169 DE9F 39 RTS
0170 *
0171 * WAIT UNTIL READY
0172 *
0173 DEA0 B6 E0 47 WAITRDY LDA CF_STATUS
0174 DEA3 85 80 BITA #BSY
0175 DEA5 26 F9 BNE WAITRDY
0176 DEA7 B6 E0 47 LDA CF_STATUS
0177 DEAA 85 40 BITA #DRDY
0178 DEAC 27 F2 BEQ WAITRDY
0179 DEAE 39 RTS
0180 *
0181 * WAIT FOR DATA REQUEST
0182 *
0183 DEAF B6 E0 47 WAITDRQ LDA CF_STATUS
0184 DEB2 85 08 BITA #DRQ
0185 DEB4 27 F9 BEQ WAITDRQ
0186 DEB6 39 RTS
0187 *
0012 END
0013 END COLDS
Program + Init Data = 5127 bytes
Error count = 0
/branches/before_delete/src/flex9/FLEX9ADS.S19
0,0 → 1,176
S123C7007EC7217EC7037EC7477EC7857EC7957EC71F0C00000000C810C810000000003BDC
S123C720121A10BECC3110EF027DCC3426118ECCFC7CCC346D842707BFCC3110EE023B8ED3
S123C740CCF87FCC3420F11A107DC71B2729BEC719A6843402EC018ECAC0ED88403502A712
S123C760036F848601A7026F88226F883B7DC71E2729113F1220F61CEFAD9FD3ED7FCCFCBC
S123C780113F1220F41A107DCC302705113F1220F47CCC30397FCC301CEF397DC71D2627BC
S123C7A08ECAC0BDD406261F7DC71C270F7FC71C810A270F3402860A8D3C3502810D26034B
S123C7C0B7C71C8D3120D4860D8D2B860A8D27B6C7128D227FC71DBEC7196D0327056A0332
S123C7E07EC74730048CC84026038EC810BFC7197AC71B7EC747BDCCD82B05113F1220F6C2
S106C8007ECCE403
S113C840FF000000535441525455500054585400B2
S123CA002006BDCAAC39C0A08639B7D3FDBECC2B308900A1BFCA06AD9FD3F1BED3FBBFCD14
S123CA200ABFCD0DBED3F9BFCD10BFCD13BED3F7BFCD4F8E00A0C6B9A684E78412E1842648
S123CA400BA78430890400BCCA0626EC3089FF5FBFCC2B8ECD03BFCC168ECADCBDCE81BD78
S123CA60CEB58D9EBDCEB58EC8408601A784BDD4062708A601BDD2007ECD678EC080BFCC75
S123CA80148EC840BDD406270534307ED2D7BECC14A780810D26E78EC840BDD1F48EC08054
S123CAA0BFCC148ECD67BFCC437ED32E8ECAECBDCE81BDCE2B8D1425F3B7CC0E8D0D25ECC9
S123CAC0B7CC0F8D0625E5B7CC1039BDD175250BB6CC1C5D27031CFE391A01393638303981
S121CAE020464C45582056332E3031044441544520284D4D2C44442C5959293F20048B
S123CC0008183A190004400000FF1B0001000000000000000000000000000000000000003E
S11ECC200000000000000000000000BFFF000001000000000000000000000036
S104CC496086
S123CC4E2B2B2B043F3F3F04574841543F0443414E2754205452414E53464552044E4F543E
S123CC6E20464F554E44044449534B204552524F52202304445249564553204E4F54205296
S11DCC8E454144590447455400D20F4D4F4E00D34B00271003E80064000A08
S123CD007ECD577ECD677ECDB17ECD097ECD0C7ECD0F7ECD127ECEFB7ECF417ECE2B7ECEC5
S123CD20817ECFED7ECEB57ED00E7ECDEA7ED0367ED1A27ED0EB7ED3497ECF867ECFD47EE8
S123CD40D27F7ED12F7ECFD07ED1757ED3297ECD4E7ECE057ECE0510CEC07F7FCC11BDD460
S123CD60007FCC28BDD3FD10CEC07FBDDE188ECD03BFCC168EC700AF9FD3E9BED3E7AF9FBB
S123CD80D3EB8ECCF8BFCC317FCC347FCC4C8D5AB6CC11B1CC0226057CCC1520147DCC2887
S123CDA010260597BDD40326B28ECC4EBDCE818D7ABDD0D4810D27E58EC8407CCC0DBDD003
S123CDC03625168ECC938D3E2709BECC1227078D3526036E9801BDD22E8ECC568615B7CCAF
S123CDE020BDCE817FCC117ECD67BECD13BFCD10BECD0DBFCD0A7FCC237FCC227FCC217FC7
S123CE00CC267FCC2439108EC844A6A0815F23028020A18026086D8426F06DA4270C6D8058
S123CE2026FC30026D8426DE1CFB398EC080BFCC14BDCEFBB1CC01271DB1CC00271F810D4F
S123CE40270D810A2732811F23E78CC0FF27E2A780810D26DC398ECC528D2620CE8CC080AF
S123CE6027F4301FB6CC07810826088620BDCF66B6CC07BDCF6620B9860DBDCF41862020F2
S123CE80C98D32A6848104276FBDCF41300120F3BDCD4E2765AD9FD3E5B1CC0A265C7FCCF4
S123CEA01AAD9FD3E5B1CC0A2750810326F37FCC116E9FCC167DCC2126278DD4B6CC0327A6
S123CEC020B1CC1A22187FCC1A7DCC0927028DCE3404F6CC0827058D085A26FB35047CCC63
S123CEE01A860D8D5C860A8D583404F6CC0527064F8D4E5A26FA35041CFE397DCC23261A1B
S123CF007DCC2627108D1A7DCC2F27117DCC24270C8D532008BDCD092003BDCD0C7FCC1AB7
S123CF2039BFCC47BECC262006BFCC47BECC24BDD4062604BECC47397FCC24BDD27F7ECDF9
S123CF40037DCC212620811F22057FCC2920177CCC293402B6CC04270BB1CC292406BDCEEE
S123CF60B57CCC29350234027DCC2226137DCC2427048DB5200D7DCC262608BDCD0F200316
S123CF80BDCD123502397FCC4AF7CC1D8604B7CC4DEC848ECCA08D0B30027ACC4D26F71FAF
S123CFA098203D7FCC4B10A3842507A3847CCC4B20F43402B6CC4B26107DCC4A260B7DCC6B
S123CFC01D270B86208D2320057CCC4A8D1235828D023001A6848D04A684200444444444C2
S123CFE0840F8B30813923028B077ECF4181302514813923168141250C815A230E816125FD
S123D00004817A23061A01B7CC11391CFE393410BECC14B6CC18B7CC19A680B7CC18810D42
S123D0202710B1CC02270BBFCC1481202604A18427E78DB935908615A70186FFA7036F0477
S123D0406F0CBDD0D48608B7CC4B8D34252E260F8D2E25282609BCCC3F276C8D232368BEC1
S123D060CC3F6D0427616D032A0F7DCC0D2705B6CC0B2003B6CC0CA7037FCC0DBECC3F393B
S123D0808D8C254381392215BECC3F6D032A388403A703BDD00E242F812E1CFE39F6CC4B51
S123D0A02B253404C005F7CC4B3504B1CC4925028020A70430015ABDD00E2408812D270475
S123D0C0815F26065D26E41A01395D27CB6F0430015A20F6BFCC3FBECC14A68481202604C5
S123D0E0300120F6BFCC14BECC3F393430E60C2618108ED10B810B2210C6033D31A5C603D3
S123D100A6A0A70C30015A26F735B042494E545854434D4442415353595342414B5343524D
S123D1204441544241434449525052544F5554BDD21EBDD00E25228D2625183404C6047886
S123D140CC1C79CC1B5A26F73504BBCC1CB7CC1C5C20DFBDD00E24FB39BECC1B1CFE3980CB
S123D160472A0F8B062A048B072A078B0A2B031CFE391A0139BDD21EBDD00E25DC8139221A
S123D180D2840F34043402FCCC1B584958495849F3CC1BF3CC1BEBE08900FDCC1B35045C71
S123D1A020D67FCC1D8D3D81022715811626F68D33B7CC1E8D2EB7CC1F8601B7CC1D20E5E7
S123D1C08D221F898D1E1E89F3CC1BFDCC3D8D141F894D27D08D0DBECC3DA780BFCC3D5A8B
S123D1E026F320C18EC840BDD4062711A6018108260E32628604A784BDD406260D1CFE3902
S123D200B7CC20810426031A01398D737ECDE486008D35250F8D077CCC4C8D8620F14F5FC0
S123D220FDCC1B39F6CC4C1027FBAE7ECD0386028D228DEABDD1A2F6CC1D27046E9FCC1EB2
S123D2408ECC5C86817ECDDE34028EC840BDD0363502251A8EC840BDD0EB8EC8408601A70D
S123D26084BDD1E4102500BB86FFA7883B39B6CC11810D2707B1CC021026FB5D1A013934B8
S123D28030A601B7CC202763BDCDEA10BECC2D260881102758108ED3618EC8406D02270906
S123D2A08604A784BDD406262E8EC838C60B8D6E8EC840B6CC0BA7038601A784BDD4062634
S123D2C016B6CC204A47474C6F8820A788218615A784BDD406271E8ECC75BDCE81BECC3FC1
S123D2E0B6CC20A7016F845FBDCF8635B08ECC82BDCE8120F6BDCEB58EC840B6CC204A8453
S123D30003C63F3DCB04E78822BDD40626C9BDCF41810D26F48604A784BDD40620CD3430CC
S123D3207ED1008ECC6B7ECDE13506FDCC4310FFCC457FCC207CCC287ECDB87FCC2810FEE3
S123D340CC45F6CC206E9FCC433A397DCCFC26046E9FD3F38EC840861BA701BDD27F7ECDCD
S10FD360674552524F525300005359537A
S106CCC07ED370AC
S106CCD87ED37094
S106CCE47ED37088
S10BCCF801000000000000002F
S11BD370397ED3706E9FF8046E9FF8006E9FF8086E9FF80A6E9FF80672
S123D3E5D374D370DFC2DFC8D370D370D370D378D371D37CD380D3847ECA007ED4367ED4DF
S123D405597ED47B204449534B204F5045524154494E472053595354454D20434F50595217
S123D4254947485420284329203139383020425920544543484E4943414C205359535445F3
S111D4454D5320434F4E53554C54414E5453B7
S123D435FFBDDE158ED409C60A8D118E0005BFD413BFD4157FD41A8ED41BC61A6F805A2631
S123D455FB7EC70CBDC709BED40927EB3088E4BFD40B3420BDDAC3352024ECBED40B6F02D2
S123D475BDC70CC6FF397DCCFC2703BDC7093424BFD40B6F01E6842622E602271AC10227DE
S123D49511BDD5B4BED40B25267DCCFC26235F352439BDD6CF20EDC6122014C1162304C676
S123D4B501200C5A588ED4CEAD95BED40B2402E701BDC70C6D01352439D986D9D9DAF9DA09
S123D4D5C3D5E2D81DD838D876D641D69FD969DBD6DB2CD699DA87D810D56FD590DB07DDC0
S123D4F5BDDCFBDCE58D202605C6021A0139ED84AE846F846F01398D0E2705C60D1A01399D
S123D515EC94ED841CFE39FCD40BC3001C8ED40910AE8426031CFB3910A384260139AE8405
S123D53520EEBED40B4F5F8D02C62FA7881130015A26F839BED40BC60BA604A78824300137
S123D5555A26F639BED40BC60BA6043402A68824A1E0260530015A26F039BED40BE6025404
S123D5752479E688237ED600BED40BE688226C88223AA788405C261F1A0139BED40BE602AA
S123D595C403C1032655CA80E702E60FC580260AE688233AA788401CFE39C60B1A0139A677
S123D5B5883B2B3C27076A883B8620201D8D31251B8118221527F68109260C8D23250DBEA3
S123D5D5D40BA7883B20D84D27E31CFE39BDDAB1250985012705A7847ED9A0C6121A0139D1
S123D5F5BED40BE68822270A6C88223AA688401CFE398D0324EA39BED40BEC88406C882166
S123D61526036C882010830000271CED881E34028604A7882235028D132410C5802704C6F9
S123D635102006C6092002C6081A01398D25BED40BBDDE0C25128D11BDDE0026031CFE39A6
S123D65534048D17350424EE39BED40BEC881E308840394FB7D411B7D41239C5102611C55F
S123D675802624F6D4115CC1072705F7D41120147FD411F6D4125CC104270CF7D412BED489
S123D6950BBDDE091CFE391A01398DC7BED40BBDDE0C2520BED40B8DB0BDDE03260AB6D40C
S123D6B5352737BDDE062732C540260B34048DAB350424E039C6201A0139BED40BE6883B28
S123D6D52B3D8120260F5CE7883BC17F260C200D8D0B24E6395D272720F61CFE393402C168
S123D6F50126048620201086098D143502250F3402BED40BA6883B6F883B8D03350239BE49
S123D715D40BE602C1021026FED1E68822C104260834028D213502250FBDD57D240AC60488
S123D735BED40BE788221CFE39BED40B4F5FED8820ED88422027E688122622E688172744B9
S123D7556F88178D3F252A8DE025268DDC2522BED40BC602E78817EC88117EDC828D0EBE7A
S123D775D40BED8840BDD69F241A7EDBC18D03EC8439BED40BE60386063D8ED41D3ABFD49E
S123D7951B6D84398DE72605C6071A0139BED40BED88136D88122603ED88116C881626035D
S123D7B56C88156D8817270BBDDC4325DDBED40BEC8813BDD62025D2BED40BEC88403406D2
S123D7D58DB03506ED84260A6F026F036F046F05200810AE04313F10AF044FBED40B6C8850
S123D7F52126036C88205FA7884030015A26F8BED40BEC8820ED88421CFE395F3404C603A0
S123D815200EBED415BFD413F6D4133404F6D414BED40BE788413504E788407FD4185FE79B
S123D835882239BED40BE68822261DBDD60C2530BED40B7DD4182605DC44FDD4188610A711
S123D8558822EC881EED882FA68822A78831C6183414BDD5F53514A70430015A26F21CFEC1
S123D87539BED40BA68831A78822C6183414A604BDD714351430015A26F27ED69FBED40B15
S123D895A603A78823B6D4177DD41A2631A703BED415BFD4138C0005270C8D222337BED4BB
S123D8B518BFD41320EFBED40BA68823A7032A0EBDDDBD25368D07231CBDDDAD20F2BED442
S123D8D50B7FD41ABDD549BDD81DBDD8382407C10827181A0139BED40BA604270C2A028DA3
S123D8F50FBDD55926E41CFE398D051CFB1CFE39A68833260CEC882FED8832A68831A78851
S123D9153439BDD78726178D182515C60610BED40BBED41BA6A85D3121A7805A26F61CFE70
S123D93539BDD810BDD60C2508BED40BC610E7882239BDD7878DEA25F8C60610BED40BBE01
S123D955D41BA680A7A85D31215A26F6BDD69F24E07EDBC1BED40B8602A702EC882FED88EF
S123D9751EBDD6412508BDD87624057EDBC1C60A39BDD4FA253DBDD8922538263BBED40BA9
S123D9957DD41A2706A60F85202629BDDCC0252AEC8811ED8840BDDA76E688172713340447
S123D9B5BDD60C3504250C5A26F4BED40B5FE788221CFE39C6112002C6043404BDD50C3523
S123D9D5041A0139BED40B6D032A08BDDDBD2403C61039BDD4FA25E2BDD537BDD91725DA03
S123D9F5BDD89225D52604C60320CFBDDCC025CABED40BC60A6F0F30015A26F9BED40BECA5
S123DA1588322727ED882FA68834A78831FCCC0EED8819B6CC10A7881BBDDDADBDD96925D4
S123DA35998D3E8604A788221CFE39BED40B6F88176C8812EC882FBDD620250DBDD77225D7
S123DA5508BDD69F2406BDDBC17ED9CFBED40BEC881EED88328610A78834BDD94725EA20EF
S123DA758ABED40BA684A7026F846F883B4FA78822398D28250E6F84441025FB7AC604E71B
S123DA9588221CFE39BED40BA6028183260B8603A702BDD69F102501131CFE398DE7250D50
S123DAB5BED40BA602810323F0C6121A01398DEC253181022708BED40B6F027ED50CA68829
S123DAD5122605BDDBA720198DC82517BED40B6D88172705BDDC98250ABDD9692505BDD9F3
S123DAF54724D339BDD9862528BDD60C252386032018BDD986251ABED40BA60F858026129B
S123DB15EC8813BDD62025098602BED40BA7021CFE39C60B1A01398D35BDD892252A2724BB
S123DB35BED40BC60BA68824A70430015A26F68D4D2515BED40BA60F858026D6856026093F
S123DB558D0C2055C6031A0139C60C1A0139BED40B860BB7D411A604E68835A78835E704F5
S123DB7530017AD41126EFBED40BA60C260CC603A6883DA70C30015A26F6BED40B398DCEA7
S123DB95BDD89225072606BED40B1CFE39C6041A0139BED40B86FFA704BDD969BED40B86F0
S123DBB500A70239ED8840BDD69F2414C5402608C580270AC6102006C60B2002C60A1A01C8
S123DBD539BDD917255E8DB8255ABED40BA60F8580265285602652BDD787BED41BEC0226F7
S123DBF50FBED40BEC88112733BED41BED842014BED40BBDD620252CBED40BEC8811271C29
S123DC158DA22520BED40BEC8813BED41BED02BED40BEC8815BED41BE304ED04BDDBA725A8
S123DC3503BDD94739C60B2002C60C1A0139EC881E5CE1883C2303C6014C10A38813260E4B
S123DC55A6883781FF27074CA788371CFE398D332530BED40BA6883A8B032616EC881E100D
S123DC75A388112705C6171A0139EC8840ED88388604A7883AEC8813ED88358601A7883780
S123DC951CFE39EC8838BDD62025F7BED40B1F12E6883A3AC603A6A8353121A788403001AF
S123DCB55A26F3BDD69F24DA7EDBC1BDD810BDD60C2546BED40B4F5FED8820A68867A7883B
S123DCD53C5F6F884030015A26F8BED40B1CFE39BED40BA68817271DEC88208300012A0355
S123DCF57EDD9AED8820BDDAB1250E4624076F84A688172605C6121A01397FD411EC88111D
S123DD1510AE8820276ABDDD9F25EE4F5F6D022774EB028900BFD40FBED40B10A3882024BB
S123DD352CBED40F30033402B6D4114CB7D4118154270881A83502274C20D23404BED40B73
S123DD55EC88408D45253E3504350220C0A38820BED40FA6023404A0E04A1F89A684EB011D
S123DD75BED40B2505E1883C2306E0883C4C20F5BDD6202514BED40BEC884210A38820272F
S123DD9514C6192002C6181A0139BDD6202508BED40BC6443A1CFE39BED40BC60BA688244F
S123DDB5A70430015A26F639BED40BA6034C8104240FA7032605BDDE0F2003BDDE1225E819
S109DDD539C6101A0139E1
S123DE007EDE377EDED87EDF057EDF177EDF357EDF607EDF607EDE2C7EDE367EDE6B000074
S123DE20000000000A0A0A0A0C0C03038EDE1EC6056F805A26FB398D32868C1A10B7E018F6
S123DE40170136C600B6E01885022608850126F51F89200AB6E01BA7805A26E98D05C51C20
S123DE601CEF39F6E018C50126F939F7E01AC10A220BF6DE1EC1012207C4BF2007F6DE1EEC
S123DE80C401CA40F7E014B1E01927493402B0E0191F893420108EDE28B6DE1E8401A6A6A8
S123DEA03520850827198504261584035D2A05508A6020028A4034048D1135045A26F78435
S123DEC0038A183504F7E01B1700AEB7E0181700A88D90C5107EDF798D9186AC1A10B7E062
S123DEE018170095C600B6E01885022608850126F51F89200BA680B7E01B5A26E917FF6303
S123DF00C55C1CEF39868C1A10B7E01817006A17FF511CEFC5183934108D1A8EDE28B6DE91
S123DF201E8401A68684038A08B7E0188D4B17FF32C5D83590A60381032305C60F1A013946
S123DF408D2DF6E019E784B7DE1E8101230484018A40B7E0148D18A684B7E0198D1B200B01
S123DF60A60381032305C6801A01395F1CFE398EDE1FF6DE1EC4013A3917000017000039E0
S9030000FC
/branches/before_delete/src/flex9/flex9_ram_b16_0.vhd
0,0 → 1,64
INIT_00 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_02 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_08 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_09 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_10 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_11 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_12 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_13 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_14 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_15 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_16 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_17 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_18 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_19 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_20 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_21 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_22 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_23 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_24 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_25 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_26 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_27 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_28 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_29 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_2f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_30 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_31 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_32 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_33 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_34 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_35 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_36 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_37 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_38 => x"3B0000000010C810C8000000000C1FC77E95C77E85C77E47C77E03C77E21C77E",
INIT_39 => x"8E3B02EE1031CCBF0727846D34CC7CFCCC8E112634CC7D02EF1031CCBE101A12",
INIT_3a => x"A702354088EDC0CA8E01EC023484A619C7BE29271BC77D101AF12034CC7FF8CC",
INIT_3b => x"FCCC7FEDD39FADEF1CF620123F1129271EC77D3B886F22886F02A70186846F03",
INIT_3c => x"27261DC77D39EF1C30CC7F3930CC7CF420123F11052730CC7D101AF420123F11",
INIT_3d => x"03260D8102353C8D0A8602340F270A811CC77F0F271CC77D1F2606D4BDC0CA8E",
INIT_3e => x"036A0527036D19C7BE1DC77F228D12C7B6278D0A862B8D0D86D420318D1CC7B7",
INIT_3f => x"F620123F11052BD8CCBD47C77E1BC77A19C7BF10C88E032640C88C043047C77E"
/branches/before_delete/src/flex9/flex9_ram_b16_1.vhd
0,0 → 1,64
INIT_00 => x"0000000000000000000000000000000000000000000000000000000000E4CC7E",
INIT_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_02 => x"00000000000000000000000000000000005458540050555452415453000000FF",
INIT_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_08 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_09 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_10 => x"CDBFFBD3BEF1D39FAD06CABFA10089302BCCBEFDD3B73986A0C039ACCABD0620",
INIT_11 => x"2684E11284E784A6B9C6A0008E4FCDBFF7D3BE13CDBF10CDBFF9D3BE0DCDBF0A",
INIT_12 => x"BD81CEBDDCCA8E16CCBF03CD8E2BCCBF5FFF8930EC2606CABC0004893084A70B",
INIT_13 => x"CCBF80C08E67CD7E00D2BD01A6082706D4BD84A7018640C88EB5CEBD9E8DB5CE",
INIT_14 => x"80C08EF4D1BD40C88EE7260D8180A714CCBED7D27E3034052706D4BD40C88E14",
INIT_15 => x"EC250D8D0ECCB7F325148D2BCEBD81CEBDECCA8E2ED37E43CCBF67CD8E14CCBF",
INIT_16 => x"3930383639011A39FE1C03275D1CCCB60B2575D1BD3910CCB7E525068D0FCCB7",
INIT_17 => x"000004203F2959592C44442C4D4D2820455441440431302E33562058454C4620",
INIT_18 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_19 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_20 => x"0000000000000000000000000000000000000001001BFF0000400400193A1808",
INIT_21 => x"00000000000000000000000000000000010000FFBF0000000000000000000000",
INIT_22 => x"274E4143043F54414857043F3F3F042B2B2B0000000060000000000000000000",
INIT_23 => x"20524F525245204B53494404444E554F4620544F4E04524546534E4152542054",
INIT_24 => x"004BD3004E4F4D0FD20054454704594441455220544F4E205345564952440423",
INIT_25 => x"0000000000000000000000000000000000000000000000000A006400E8031027",
INIT_26 => x"000000000070D37E00000000000000000000000000000000000000000070D37E",
INIT_27 => x"0000000000000001000000000000000000000000000000000070D37E00000000",
INIT_28 => x"CE7E2BCE7E41CF7EFBCE7E12CD7E0FCD7E0CCD7E09CD7EB1CD7E67CD7E57CD7E",
INIT_29 => x"7ED4CF7E86CF7E49D37EEBD07EA2D17E36D07EEACD7E0ED07EB5CE7EEDCF7E81",
INIT_2a => x"D4BD11CC7F7FC0CE1005CE7E05CE7E4ECD7E29D37E75D17ED0CF7E2FD17E7FD2",
INIT_2b => x"9FAFE7D3BEE9D39FAF00C78E16CCBF03CD8E18DEBD7FC0CE10FDD3BD28CC7F00",
INIT_2c => x"28CC7D142015CC7C052602CCB111CCB65A8D4CCC7F34CC7F31CCBFF8CC8EEBD3",
INIT_2d => x"D0BD0DCC7C40C88EE5270D81D4D0BD7A8D81CEBD4ECC8EB22603D4BD97052610",
INIT_2e => x"CCB7158656CC8E2ED2BD01986E0326358D072712CCBE09273E8D93CC8E162536",
INIT_2f => x"7F21CC7F22CC7F23CC7F0ACDBF0DCDBE10CDBF13CDBE67CD7E11CC7F81CEBD20",
INIT_30 => x"806D0C27A46DF026846D082680A1208002235F81A0A644C88E103924CC7F26CC",
INIT_31 => x"0D811F2700CCB11D2701CCB1FBCEBD14CCBF80C08E39FB1CDE26846D0230FC26",
INIT_32 => x"80C08CCE20268D52CC8E39DC260D8180A7E227FFC08CE7231F8132270A810D27",
INIT_33 => x"20208641CFBD0D86B92066CFBD07CCB666CFBD20860826088107CCB61F30F427",
INIT_34 => x"CC7F5C260ACCB1E5D39FAD65274ECDBDF320013041CFBD6F27048184A6328DC9",
INIT_35 => x"2703CCB6D48D272621CC7D16CC9F6E11CC7FF326038150270ACCB1E5D39FAD1A",
INIT_36 => x"CC7C0435FB265A088D052708CCF60434CE8D022709CC7D1ACC7F18221ACCB120",
INIT_37 => x"1A2623CC7D39FE1C0435FA265A4E8D4F062705CCF60434588D0A865C8D0D861A",
INIT_38 => x"1ACC7F0CCDBD032009CDBD0820538D0C2724CC7D11272FCC7D1A8D102726CC7D",
INIT_39 => x"CD7E7FD2BD24CC7F3947CCBE042606D4BD24CCBE47CCBF062026CCBE47CCBF39",
INIT_3a => x"CEBD062429CCB10B2704CCB6023429CC7C172029CC7F05221F81202621CC7D03",
INIT_3b => x"03200FCDBD082626CC7D0D20B58D042724CC7D132622CC7D0234023529CC7CB5",
INIT_3c => x"1FF7264DCC7A02300B8DA0CC8E84EC4DCCB704861DCCF74ACC7F39023512CDBD",
INIT_3d => x"CC7D0B264ACC7D10264BCCB60234F4204BCC7C84A3072584A3104BCC7F3D2098",
INIT_3e => x"44444444042084A6048D84A60130028D8235128D4ACC7C0520238D20860B271D",
INIT_3f => x"2561810E235A810C254181162339811425308141CF7E078B02233981308B0F84"
/branches/before_delete/src/flex9/flex9_ram_b16_2.vhd
0,0 → 1,64
INIT_00 => x"0D8118CCB780A619CCB718CCB614CCBE103439FE1C3911CCB7011A06237A8104",
INIT_01 => x"046F03A7FF8601A715869035B98DE72784A10426208114CCBF0B2702CCB11027",
INIT_02 => x"BE6823238D6C273FCCBC092628252E8D0F262E25348D4BCCB70886D4D0BD0C6F",
INIT_03 => x"393FCCBE0DCC7F03A70CCCB603200BCCB605270DCC7D0F2A036D6127046D3FCC",
INIT_04 => x"4BCCF639FE1C2E812F240ED0BD03A70384382A036D3FCCBE1522398143258C8D",
INIT_05 => x"04272D8108240ED0BD5A013004A72080022549CCB104354BCCF705C00434252B",
INIT_06 => x"0426208184A614CCBE3FCCBFF6205A0130046FCB275D39011AE4265D06265F81",
INIT_07 => x"03C6A5313D03C610220B810BD18E1018260CE63034393FCCBE14CCBFF6200130",
INIT_08 => x"5243534B4142535953534142444D435458544E4942B035F7265A01300CA7A0A6",
INIT_09 => x"7804C604341825268D22250ED0BD1ED2BD54554F545250524944434142544144",
INIT_0a => x"8039FE1C1BCCBE39FB240ED0BDDF205C1CCCB71CCCBB0435F7265A1BCC791CCC",
INIT_0b => x"223981DC250ED0BD1ED2BD39011A39FE1C032B0A8B072A078B042A068B0F2A47",
INIT_0c => x"5C04351BCCFD0089E0EB1BCCF31BCCF34958495849581BCCFC023404340F84D2",
INIT_0d => x"E5201DCCB701861FCCB72E8D1ECCB7338DF6261681152702813D8D1DCC7FD620",
INIT_0e => x"5A3DCCBF80A73DCCBE0D8DD0274D891F148D3DCCFD1BCCF3891E1E8D891F228D",
INIT_0f => x"39FE1C0D2606D4BD84A7048662320E26088101A6112706D4BD40C88EC120F326",
INIT_10 => x"5F4FF120868D4CCC7C078D0F25358D0086E4CD7E738D39011A0326048120CCB7",
INIT_11 => x"1ECC9F6E04271DCCF6A2D1BDEA8D228D028603CD7EAEFB27104CCCF6391BCCFD",
INIT_12 => x"A7018640C88EEBD0BD40C88E1A25023536D0BD40C88E0234DECD7E81865CCC8E",
INIT_13 => x"3439011A5DFB261002CCB107270D8111CCB6393B88A7FF86BB002510E4D1BD84",
INIT_14 => x"0927026D40C88E61D38E105827108108262DCCBE10EACDBD632720CCB701A630",
INIT_15 => x"2606D4BD84A7018603A70BCCB640C88E6E8D0BC638C88E2E2606D4BD84A70486",
INIT_16 => x"3FCCBE81CEBD75CC8E1E2706D4BD84A715862188A720886F4C47474A20CCB616",
INIT_17 => x"844A20CCB640C88EB5CEBDF62081CEBD82CC8EB03586CFBD5F846F01A720CCB6",
INIT_18 => x"3034CD2006D4BD84A70486F4260D8141CFBDC92606D4BD2288E704CB3D3FC603",
INIT_19 => x"FE1028CC7FB8CD7E28CC7C20CC7F45CCFF1043CCFD0635E1CD7E6BCC8E00D17E",
INIT_1a => x"CD7E7FD2BD01A71B8640C88EF3D39F6E0426FCCC7D393A43CC9F6E20CCF645CC",
INIT_1b => x"08F89F6E00F89F6E04F89F6E70D37E3900000000535953000053524F52524567",
INIT_1c => x"00000000000000000000000000000000000000000000000006F89F6E0AF89F6E",
INIT_1d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_1f => x"00CA7E84D380D37CD371D378D370D370D370D3C8DFC2DF70D374D30000000000",
INIT_20 => x"204D455453595320474E4954415245504F204B534944207BD47E59D47E36D47E",
INIT_21 => x"118D0AC609D48E15DEBDFF594220303839312029432820544847495259504F43",
INIT_22 => x"2709D4BE09C7BD0CC77EFB265A806F1AC61BD48E1AD47F15D4BF13D4BF05008E",
INIT_23 => x"0327FCCC7D39FFC60CC7BD026F0BD4BEEC242035C3DABD20340BD4BFE48830EB",
INIT_24 => x"CC7D26250BD4BEB4D5BD112702C11A2702E6222684E6016F0BD4BF243409C7BD",
INIT_25 => x"BE95ADCED48E585A0C2001C6042316C1142012C6ED20CFD6BD3924355F2326FC",
INIT_26 => x"41D676D838D81DD8E2D5C3DAF9DAD9D986D9392435016D0CC7BD01E702240BD4",
INIT_27 => x"02C60526208DE5DCFBDCBDDD07DB90D56FD510D887DA99D62CDBD6DB69D99FD6",
INIT_28 => x"C30BD4FC39FE1C84ED94EC39011A0DC605270E8D39016F846F84AE84ED39011A",
INIT_29 => x"2FC6028D5F4F0BD4BEEE2084AE39012684A31039FB1C032684AE1009D48E1C00",
INIT_2a => x"04A60BC60BD4BE39F6265A01302488A704A60BC60BD4BE39F8265A01301188A7",
INIT_2b => x"0BD4BE00D67E2388E679245402E60BD4BE39F0265A01300526E0A12488A60234",
INIT_2c => x"E602E780CA552603C103C402E60BD4BE39011A1F265C4088A73A22886C2288E6",
INIT_2d => x"20863B886A07273C2B3B88A639011A0BC639FE1C4088A73A2388E60A2680C50F",
INIT_2e => x"1CE3274DD8203B88A70BD4BE0D25238D0C260981F627152218811B25318D1D20",
INIT_2f => x"22886C0A272288E60BD4BE39011A12C6A0D97E84A7052701850925B1DABD39FE",
INIT_30 => x"1C270000831020886C032621886C4088EC0BD4BE39EA24038D39FE1C4088A63A",
INIT_31 => x"011A08C6022009C6062010C6042780C51024138D02352288A7048602341E88ED",
INIT_32 => x"D4BE39EE240435178D043439FE1C032600DEBD118D12250CDEBD0BD4BE258D39",
INIT_33 => x"052707C15C11D4F6242680C5112610C53912D4B711D4B74F394088301E88EC0B",
INIT_34 => x"8D39011A39FE1C09DEBD0BD4BE12D4F70C2704C15C12D4F611D47F142011D4F7",
INIT_35 => x"2640C5322706DEBD372735D4B60A2603DEBDB08D0BD4BE20250CDEBD0BD4BEC7",
INIT_36 => x"C13B88E75C0F2620813D2B3B88E60BD4BE39011A20C639E0240435AB8D04340B",
INIT_37 => x"148D098610202086042601C1023439FE1CF62027275D39E6240B8D0D200C267F",
INIT_38 => x"E6D1FE261002C102E60BD4BE390235038D3B886F3B88A60BD4BE02340F250235",
INIT_39 => x"D4BE39FE1C2288E70BD4BE04C60A247DD5BD0F250235218D0234082604C12288",
INIT_3a => x"2625E08D2A253F8D17886F44271788E622261288E627204288ED2088ED5F4F0B",
INIT_3b => x"7E1A249FD6BD4088ED0BD4BE0E8D82DC7E1188EC1788E702C60BD4BE2225DC8D",
INIT_3c => x"1A07C60526E78D39846D1BD4BF3A1DD48E3D068603E60BD4BE3984EC038DC1DB",
INIT_3d => x"43DCBD0B2717886D15886C032616886C1188ED032612886D1388ED0BD4BE3901",
INIT_3e => x"6F026F0A2684ED0635B08D06344088EC0BD4BED22520D6BD1388EC0BD4BEDD25",
INIT_3f => x"304088A75F20886C032621886C0BD4BE4F04AF103F3104AE100820056F046F03"
/branches/before_delete/src/flex9/flex9_ram_b16_3.vhd
0,0 → 1,64
INIT_00 => x"13D4F613D4BF15D4BE0E2003C604345F39FE1C4288ED2088EC0BD4BEF8265A01",
INIT_01 => x"1D262288E60BD4BE392288E75F18D47F4088E704354188E70BD4BE14D4F60434",
INIT_02 => x"2288A62F88ED1E88EC2288A7108618D4FD44DC052618D47D0BD4BE30250CD6BD",
INIT_03 => x"C62288A73188A60BD4BE39FE1CF2265A013004A71435F5D5BD143418C63188A7",
INIT_04 => x"1AD47D17D4B62388A703A60BD4BE9FD67EF2265A0130143514D7BD04A6143418",
INIT_05 => x"88A60BD4BEEF2013D4BF18D4BE3723228D0C2705008C13D4BF15D4BE03A73126",
INIT_06 => x"BD1DD8BD49D5BD1AD47F0BD4BEF220ADDDBD1C23078D3625BDDDBD0E2A03A723",
INIT_07 => x"058D39FE1CE42659D5BD0F8D022A0C2704A60BD4BE39011A182708C1072438D8",
INIT_08 => x"1525188D172687D7BD393488A73188A63288ED2F88EC0C263388A639FE1CFB1C",
INIT_09 => x"D4BE08250CD6BD10D8BD39FE1CF6265A80A721315DA8A61BD4BE0BD4BE1006C6",
INIT_0a => x"265A21315DA8A780A61BD4BE0BD4BE1006C6F825EA8D87D7BD392288E710C60B",
INIT_0b => x"052476D8BD082541D6BD1E88ED2F88EC02A702860BD4BEC1DB7EE0249FD6BDF6",
INIT_0c => x"292620850FA606271AD47D0BD4BE3B26382592D8BD3D25FAD4BD390AC6C1DB7E",
INIT_0d => x"BEF4265A0C2504350CD6BD043413271788E676DABD4088ED1188EC2A25C0DCBD",
INIT_0e => x"082A036D0BD4BE39011A04350CD5BD043404C6022011C639FE1C2288E75F0BD4",
INIT_0f => x"CF2003C60426D52592D8BDDA2517D9BD37D5BDE225FAD4BD3910C60324BDDDBD",
INIT_10 => x"A73488A62F88ED27273288EC0BD4BEF9265A01300F6F0AC60BD4BECA25C0DCBD",
INIT_11 => x"39FE1C2288A704863E8D992569D9BDADDDBD1B88A710CCB61988ED0ECCFC3188",
INIT_12 => x"D97EC1DBBD06249FD6BD082572D7BD0D2520D6BD2F88EC12886C17886F0BD4BE",
INIT_13 => x"6F846F02A784A60BD4BE8A20EA2547D9BD3488A710863288ED1E88EC0BD4BECF",
INIT_14 => x"8102A60BD4BE39FE1C2288E704C67AFB251044846F0E25288D392288A74F3B88",
INIT_15 => x"12C6F023038102A60BD4BE0D25E78D39FE1C130125109FD6BD02A703860B2683",
INIT_16 => x"25C88D1920A7DBBD05261288A60CD57E026F0BD4BE082702813125EC8D39011A",
INIT_17 => x"D6BD282586D9BD39D32447D9BD052569D9BD0A2598DCBD052717886D0BD4BE17",
INIT_18 => x"BE0286092520D6BD1388EC122680850FA60BD4BE1A2586D9BD1820038623250C",
INIT_19 => x"3004A72488A60BC60BD4BE24272A2592D8BD358D39011A0BC639FE1C02A70BD4",
INIT_1a => x"0CC639011A03C655200C8D09266085D62680850FA60BD4BE15254D8DF6265A01",
INIT_1b => x"A60BD4BEEF2611D47A013004E73588A73588E604A611D4B70B860BD4BE39011A",
INIT_1c => x"1C0BD4BE0626072592D8BDCE8D390BD4BEF6265A01300CA73D88A603C60C260C",
INIT_1d => x"249FD6BD4088ED3902A700860BD4BE69D9BD04A7FF860BD4BE39011A04C639FE",
INIT_1e => x"BE5A25B88D5E2517D9BD39011A0AC602200BC6062010C60A2780C5082640C514",
INIT_1f => x"D4BE33271188EC0BD4BE0F2602EC1BD4BE87D7BD52266085522680850FA60BD4",
INIT_20 => x"BE1388EC0BD4BE2025A28D1C271188EC0BD4BE2C2520D6BD0BD4BE142084ED1B",
INIT_21 => x"0CC602200BC63947D9BD0325A7DBBD04ED04E31BD4BE1588EC0BD4BE02ED1BD4",
INIT_22 => x"3788A74C0727FF813788A60E261388A3104C01C603233C88E15C1E88EC39011A",
INIT_23 => x"EC39011A17C605271188A3101E88EC1626038B3A88A60BD4BE3025338D39FE1C",
INIT_24 => x"F72520D6BD3888EC39FE1C3788A701863588ED1388EC3A88A704863888ED4088",
INIT_25 => x"C1DB7EDA249FD6BDF3265A01304088A7213135A8A603C63A3A88E6121F0BD4BE",
INIT_26 => x"BEF8265A013040886F5F3C88A76788A62088ED5F4F0BD4BE46250CD6BD10D8BD",
INIT_27 => x"0E25B1DABD2088ED9ADD7E032A0100832088EC1D271788A60BD4BE39FE1C0BD4",
INIT_28 => x"EE259FDDBD6A272088AE101188EC11D47F39011A12C605261788A6846F072446",
INIT_29 => x"11D4B6023403300FD4BE2C242088A3100BD4BE0FD4BF008902EB7427026D5F4F",
INIT_2a => x"023504353E25458D4088EC0BD4BE0434D2204C270235A8810827548111D4B74C",
INIT_2b => x"E006233C88E105250BD4BE01EB84A6891F4AE0A0043402A60FD4BE2088A3C020",
INIT_2c => x"BD39011A18C6022019C614272088A3104288EC0BD4BE142520D6BDF5204C3C88",
INIT_2d => x"0BD4BE39F6265A013004A72488A60BC60BD4BE39FE1C3A44C60BD4BE082520D6",
INIT_2e => x"000000000039011A10C639E82512DEBD03200FDEBD052603A70F2404814C03A6",
INIT_2f => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_30 => x"0000C3F07EBFF07EA7F07EA3F07E9FF07E6CF07E63F07E5FF07E5BF07E57F07E",
INIT_31 => x"0000000000000000000000000000FFFF40100302010000000000000000000000",
INIT_32 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_33 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_34 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_35 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_36 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_37 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_38 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_39 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3b => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3c => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3d => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3e => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_3f => x"0000000000000000000000000000000000000000000000000000000000000000"
/branches/before_delete/src/flex9/f9-data.txt
0,0 → 1,36
*
** STRINGS AND MESSAGES
*
ORG $CC4E
PMTSTR FCC "+++"
FCB $04
QRYSTR FCC "???"
FCB $04
WOTMSG FCC "WHAT?"
FCB $04
NTRMSG FCC "CAN'T TRANSFER"
FCB $04
NFDMSG FCC "NOT FOUND"
FCB $04
DERMSG FCC "DISK ERROR #"
FCB $04
DNRMSG FCC "DRIVES NOT READY"
FCB $04
*
** MEMORY RESIDENT COMMANDS
*
CMDTBL FCC "GET"
FCB $00
FDB GETCMD
FCC "MON"
FCB $00
FDB ZD34B
FCB $00
*
** DECIMAL CONVERSION TABLE
*
DECTBL FDB 10000
FDB 1000
FDB 100
FDB 10
END
/branches/before_delete/src/flex9/f9-dkfdc.txt
0,0 → 1,372
*
** FLEX 9 DISK DRIVERS
** FOR SINGLE/DOUBLE SIDED 5" DRIVES ONLY.
** USING FD1771.
** SIDES MAY BE TREATED AS SEPERATE DISKS.
**
** BY J.E.KENT 1 JAN 1982
*
*
** F.D. CONTROLLER
*
DRVREG EQU $E014
MOTOR EQU %10000000
SIDESL EQU %01000000
DRIVSL EQU %00000001
CMDREG EQU $E018
TRKREG EQU $E019
SECREG EQU $E01A
DATREG EQU $E01B
*
** FD1771 DISK CONTROLLER INSTRUCTIONS
*
** TYPE I INSTRUCTIONS:
*
IREST EQU $00 RESTORE (SEEK TRACK 0)
ISEEK EQU $10 SEEK TRACK
ISTEP EQU $20 STEP ONE TRACK (IN/OUT)
ISTIN EQU $40 STEP IN ONE TRACK
ISTOUT EQU $60 STEP OUT ONE TRACK
*
** BIT FIELDS FOR TYPE I INSTRUCTIONS
*
SMR6 EQU $00 6MSEC STEPPING RATE
SMR12 EQU $01 12 MSEC STEPPING RATE
SMR20 EQU $02 20 MSEC
SMR40 EQU $03 40 MSEC
*
BVERIF EQU $04 VERIFY BIT (1=ON)
BHDLD EQU $08 HEAD LOAD (1=LOAD HEAD AT BEGINING)
BUPDAT EQU $10 UPDATE TRACK REGISTER (1=TRUE)
*
** TYPE II INSTRUCTIONS
*
IREAD EQU $80 READ SECTOR
IWRITE EQU $A0 WRITE SECTOR
*
** BIT FIELD FOR TYPE II
*
BDAMFB EQU $00 $FB DATA ADDRESS MARK
BDAMFA EQU $01 $FA DATA ADDREES MARK
BDAMF9 EQU $02 $F9 DATA ADDRESS MARK
BDAMF8 EQU $03 $F8 DATA ADDRESS MARK
BEHLD EQU $04 ENABLE HLD & 10 MSEC DELAY (1=ACTIVE)
BBLEN EQU $08 BLOCK LENGTH (1=IBM FORMAT 128 - 1024 BYTES)
BMREC EQU $10 MULTIPLE RECORD (0=SINGLE, 1=MULTIPLE)
*
** TYPE III INSTRUCTIONS
*
IRDADD EQU $C4 READ ADDRESS
IRDTRK EQU $E4 READ TRACK
IWRTRK EQU $F4 WRITE TRACK
*
** BIT FIELD TYPE III (READ TRACK ONLY)
*
BSYNC EQU $01 SYNCRONIZE FLAG (0=SYNC TO AM)
*
** TYPE IV NSTRUCTION
*
IFINTR EQU $D0 FORCE INTERRUPT
*
** FORCED INTERRUPT BITS (TYPE IV INSTRUCTION)
*
FI0 EQU $01 NOT READY TO READY TRANSITION
FI1 EQU $02 READY TO NOT READY TRANSITION
FI2 EQU $04 INDEX PULSE
FI3 EQU $08 EVERY 10 MSEC
*
** DISK DRIVER PATCHES
*
ORG $DE00
*
** JUMP TABLE TO DISK DRIVERS
*
READ JMP READSC
WRITE JMP WRITSC
VERIFY JMP VERIF1
RESTOR JMP RESTR1
DRIVE JMP DRVSEL
DRVRDY JMP CHKDRV
QUICK JMP CHKDRV
COLDDR JMP INITDR
WARMDR JMP WARMD1
SEEK JMP SEEK1
*
** CURRNT DRIVE NUMBER ($DE1E)
*
CURDRV FCB $00
*
** HEAD POSITION TABLE ($DE1F)
*
TRKTBL FCB $00 DRIVE 0
FCB $00 DRIVE 1
FCB $00 DRIVE 2
FCB $00 DRIVE 3
*
** ??? ($DE23)
*
FCB 0
*
** DENSITY TABLE: ($DE24)
** HOLDS SECTORS/TRACK FOR DRIVE
** 5" SINGLE DENSITY => 10 SECTORS/TRACK
*
DNSTBL FCB 10,10,10,10 ALL MINIS
*
** DRIVE & DISK CHARACTERISTICS
*
* BITS 1,0 STEPPING RATES
* BIT 2 TRACKS/DISK (0=40 TRACK, 1=80 TRACK)
* BIT 3 TRACKS/DRIVE (0=40 TRACK, 1=80 TRACK)
*
BDVTPI EQU $08
BDKTPI EQU $04
DDCTBL EQU *
FCB BDVTPI+BDKTPI+SMR6
FCB BDVTPI+BDKTPI+SMR6
FCB SMR40
FCB SMR40
*
** DISK DRIVERS
*
* DRIVER INITIATION
*
INITDR LDX #CURDRV
LDB #5
INITD2 CLR ,X+
DECB
BNE INITD2
WARMD1 RTS
*
* READ ONE SECTOR
*
READSC BSR SEEK1
LDA #IREAD+BBLEN+BEHLD
READ2 ORCC #$10
* SEI DISABLE INTERRUPTS
STA CMDREG
LBSR DLY47
LDB #$00
RDLOOP LDA CMDREG
BITA #$02
BNE RDBYTE
BITA #$01
BNE RDLOOP
TFR A,B
BRA RDEXIT
*
RDBYTE LDA DATREG
STA ,X+
DECB
BNE RDLOOP
BSR WAIT
RDEXIT BITB #$1C
ANDCC #$EF
* CLI
RTS
*
** WAIT UNTIL CONTROLLER READY
*
WAIT LDB CMDREG
BITB #$01
BNE WAIT
RTS
*
** SEEK1 TRACK AND SECTOR
** ACCA = TRACK NUMBER
** ACCB = SECTOR NUMBER
*
SEEK1 STB SECREG SET SECTOR
CMPB #10 DOUBLE-SIDED ?
BHI SEEK2 DOUBLE SIDED, FLIP
LDB CURDRV BACK SIDE OF DISK ?
CMPB #1 DRIVE 2-3 BACK SIDE
BHI SEEK3
ANDB #$FF-SIDESL SELECT SIDE 0
BRA SEEK4
*
SEEK2 LDB CURDRV SELECT SIDE 1
SEEK3 ANDB #DRIVSL
ORB #SIDESL
SEEK4 STB DRVREG
*
CMPA TRKREG DIFFERENT TO LAST ?
BEQ FOUND
PSHS A SAVE TRACK NO. ON STACK
*
* IF 80 TRACK DRIVE, & 40 TRACK DISK, FIRST SEEK
* SHOULD NOT UPDATE TRACK REGISTER NOR VERIFY.
*
SUBA TRKREG CALC. DIFFERENCE
TFR A,B
PSHS Y
*
** GET STEPPING RATE FROM TABLE
*
LDY #DDCTBL
LDA CURDRV
ANDA #$01
LDA A,Y
PULS Y
*
** CHECK DRIVE AND DISK TYPE
*
BITA #BDVTPI DRIVE TRACK DENSITY = 48 TPI ?
BEQ SEEKVU YES, SKIP
BITA #BDKTPI DISK TRACK DENSITY = 96 TPI ?
BNE SEEKVU YES, SKIP (DRIVE & DISK MATCH)
*
** HERE IF 40TRACK DISK IN 80 TRACK DRIVE
** USE STEP INSTRUCTIONS TO PREVENT UPDATE OF TRACK REG.
*
ANDA #$03 LEAVE STEPPING RATE BITS
TSTB
BPL STEPIN
NEGB
ORA #ISTOUT
BRA STEPLP
STEPIN ORA #ISTIN
STEPLP PSHS B
BSR SEEK5
PULS B
DECB
BNE STEPLP
*
** SEEK TRACK WITH VERIFY & UPDATE
*
SEEKVU ANDA #$03 RETAIN STEPPING RATE
ORA #ISEEK+BHDLD ($18)
PULS B RESTORE DEST TRACK NO.
STB DATREG YES, SEEK1 NEW TRACK
LBSR DLY47
SEEK5 STA CMDREG
LBSR DLY47
BSR WAIT
BITB #$10 CHECK FOR SEEK1 ERROR
FOUND JMP DLY47
*
** WRITE SECTOR TO DISK
*
WRITSC BSR SEEK1
LDA #IWRITE+BBLEN+BEHLD ($AC)
WRITE2 ORCC #$10
* SEI
STA CMDREG
LBSR DLY47
LDB #$00
WRLOOP LDA CMDREG
BITA #$02
BNE WRBYTE
BITA #$01
BNE WRLOOP
TFR A,B
BRA WREXIT
*
WRBYTE LDA ,X+
STA DATREG
DECB
BNE WRLOOP
LBSR WAIT
WREXIT BITB #$5C
ANDCC #$EF
* CLI
RTS
*
** VERIFY SECTOR WRITTEN
*
VERIF1 LDA #IREAD+BBLEN+BEHLD ($8C)
VERIF2 ORCC #$10
* SEI
STA CMDREG
LBSR DLY47
LBSR WAIT
ANDCC #$EF
* CLI
BITB #$18
RTS
*
** SEEK TRACK ZERO
*
RESTR1 PSHS X
BSR DRVSEL
LDX #DDCTBL
LDA CURDRV
ANDA #1
LDA A,X
ANDA #$03
ORA #IREST+BHDLD
STA CMDREG
BSR DLY47
LBSR WAIT
BITB #$D8 CHECK FOR ERROR
PULS X,PC
*
** SELECT DRIVE
** IX -> FCB
** ACCA = NEW DRIVE NUMBER
*
* SAVE OLD TRACK NUMBER IN TABLE
* AND SET UP TRACK FOR NEW DRIVE
*
*
DRVSEL LDA 3,X
CMPA #3
BLS DRSEL1
LDB #$0F SET ERROR VALUE
* SEC
ORCC #$01
RTS
*
* SAVE TRACK POSITION OF PREVIOUS DRIVE
*
DRSEL1 BSR PNTDRV
LDB TRKREG
STB ,X
*
* SELECT NEW DRIVE
*
DRSEL3 STA CURDRV MAY BE 0 - 3
CMPA #1
BLS DRSEL4 ONE DIRECTORY ?
ANDA #DRIVSL ROUND OFF
ORA #SIDESL SELECT SIDE 1
DRSEL4 STA DRVREG
*
* RESTORE LAST TRACK POSITION FOR THIS DRIVE
*
BSR PNTDRV
LDA ,X
STA TRKREG
BSR DLY47
BRA OK
*
** CHECK IF DRIVE READY
*
CHKDRV LDA 3,X
CMPA #3
BLS OK
LDB #$80
* SEC
ORCC #$01
RTS
 
OK CLRB
* CLC
ANDCC #$FE
RTS
*
* POINT TO TRACK TABLE ENTRY FOR THIS DRIVE
*
PNTDRV LDX #TRKTBL
LDB CURDRV
ANDB #DRIVSL
ABX
RTS
*
** DELAY ROUTINE
*
DLY47 LBSR DLY19
DLY19 LBSR DLY5US
DLY5US RTS
END
 
/branches/before_delete/src/flex9/flex9ram.asm
0,0 → 1,13
NAM FLEX SOURCE
INCLUDE "f9-moneq.txt"
INCLUDE "f9-equ.txt"
INCLUDE "f9-spool.txt"
INCLUDE "f9-sfcb.txt"
INCLUDE "f9-init.txt"
INCLUDE "f9-var.txt"
INCLUDE "f9-data.txt"
INCLUDE "f9-cli.txt"
INCLUDE "f9-monio.txt"
INCLUDE "f9-fms.txt"
INCLUDE "f9-dkram.txt"
END COLDS
/branches/before_delete/src/flex9/f9-sfcb.txt
0,0 → 1,14
*
** SYSTEM FILE CONTROL BLOCK
*
ORG $C840
FCB FCB $FF
FCB $00
FCB $00
FCB $00
ZC844 FCC "STARTUP"
FCB $00
FCC "TXT"
FCB $00
END
 
/branches/before_delete/src/flex9/f9-moneq.txt
0,0 → 1,106
PAGE
*
***************************************************
* MEMORY MAP EQUATES *
***************************************************
MONIO EQU $E000 I/O SPACE
MONRAM EQU $DFC0 STACK SPACE
MONROM EQU $F800 START OF ROM
MONEXT EQU $F000 EXTENDED COMMANDS
*MONEXT EQU $1000 EXTENDED COMMANDS
*
***************************************************
* SYS09BUG VARIABLE SPACE
***************************************************
*
STACK EQU MONRAM+0 TOP OF INTERNAL STACK / USER VECTOR
SWI3 EQU MONRAM+2 SOFTWARE INTERRUPT VECTOR #3
SWI2 EQU MONRAM+4 SOFTWARE INTERRUPT VECTOR #2
FIRQ EQU MONRAM+6 FAST INTERRUPT VECTOR
IRQ EQU MONRAM+8 INTERRUPT VECTOR
SWI EQU MONRAM+10 SOFTWARE INTERRUPT VECTOR
SVCVO EQU MONRAM+12 SUPERVISOR CALL VECTOR ORGIN
SVCVL EQU MONRAM+14 SUPERVISOR CALL VECTOR LIMIT
LRARAM EQU MONRAM+16 LRA ADDRESSES
CPORT EQU MONRAM+32 RE-VECTORABLE CONTROL PORT
ECHO EQU MONRAM+34 ECHO FLAG
BPTBL EQU MONRAM+35 BREAKPOINT TABLE BASE ADDR
**************************************************
* VDU BYTES *
**************************************************
*
**** ALWAYS KEEP COLADX AND ROWADX TOGETHER ******
COLADX EQU MONRAM+59 CURSOR COLUMN
ROWADX EQU MONRAM+60 CURSOR ROW
**************************************************
*
NEWROW EQU MONRAM+61 NEW ROW TEMP FOR ESCAPE
ESCFLG EQU MONRAM+62 ESCAPE SEQUENCE ACTIVE
*
***************************************************
* SERIAL PORT *
***************************************************
*
ACIAS EQU MONIO+$00 CONTROL PORT
*
***************************************************
* PS/2 KEYBOARD PORT *
***************************************************
*
PS2KBD EQU MONIO+$20 PS/2 KEYBOARD PORT
*
***************************************************
* ADM3A DISPLAY DRIVER VARIABLES *
***************************************************
*
** VIDEO DISPLAY DEFINITIONS
*
VDU EQU MONIO+$30
VDUCHR EQU 0 CHARACTER REGISTER
VDUATT EQU 1 ATTRIBUTE REGISTER
VDUCOL EQU 2 CURSOR COLUMN
VDUROW EQU 3 CURSOR ROW
VDUOFF EQU 4 ROW OFFSET
*
LINLEN EQU 80 LENGTH OF A LINE
NUMLIN EQU 25 NUMBER OF LINES
*
***************************************************
* Serial PROM register
***************************************************
*
** CONFIGURATION PROM DEFINITIONS
*
PROMREG EQU MONIO+$C0
PCLKHI EQU $01 Toggle PROM Clock High
PCLKLO EQU $00 Toggle PROM Clock Low
PRSTHI EQU $02 Toggle PROM Reset High
PRSTLO EQU $00 Toggle PROM Reset Low
SYNCHI EQU $AA55 Synch Pattern High Word
SYNCLO EQU $FF00 Synch Pattern Low Word
*
*
***************************************************
* Dynamic Address Translation Registers
***************************************************
*
** DAT Table
*
IC11 EQU $FFF0 DAT RAM CHIP
*
***************************************************
* START OF ROM *
***************************************************
*
MONITV EQU MONROM+0 FDB MONITOR
NXTCMV EQU MONROM+2 FDB NEXTCMD
INCHV EQU MONROM+4 FDB INCH
INCHEV EQU MONROM+6 FDB INCHE
INCHKV EQU MONROM+8 FDB INCHEK
OUTCHV EQU MONROM+10 FDB OUTCH
PDATAV EQU MONROM+12 FDB PDATA
PCRLFV EQU MONROM+14 FDB PCRLF
PSTRGV EQU MONROM+16 FDB PSTRNG
LRAV EQU MONROM+18 FDB LRA
END
 
/branches/before_delete/src/flex9/f9-dkide.txt
0,0 → 1,188
*
** FLEX 9 COMPACT FLASH / IDE DISK DRIVERS
*
* FOR SYS09BUG ON THE XESS XSA-3S1000 & XST3.0
* WITH I/O MAPPED AT $XE000
* AND ROM MAPPED AT $XF000
*
* These drivers should work with either
* an IDE disk drive or a IDE CF adapter card
* It uses 16 bit transfer mode,
* as some IDE drives do not support
* the set feature command found on CF cards
* that allows for 8 bit operation
*
*
IMASK EQU $10 IRQ MASK CC
FMASK EQU $40 FIRQ MASK CC
*
CF_BASE EQU $E100
CF_DATA EQU CF_BASE+0
CF_ERROR EQU CF_BASE+2 ; read error
CF_FEATURE EQU CF_BASE+2 ; write feature
CF_SECCNT EQU CF_BASE+4
CF_SECNUM EQU CF_BASE+6
CF_CYLLO EQU CF_BASE+8
CF_CYLHI EQU CF_BASE+10
CF_HEAD EQU CF_BASE+12
CF_STATUS EQU CF_BASE+14 ; read status
CF_COMAND EQU CF_BASE+14 ; write command
CF_AUX EQU CF_BASE+30 ; Reset register
*
* Command Equates
*
CMDREAD EQU $20 ; Read Single sector
CMDWRITE EQU $30 ; Write Single sector
AUXRESET EQU $06
AUXRSTREL EQU $02
HEADLBA EQU $E0
*
* Status bit equates
*
BSY EQU $80
DRDY EQU $40
DRQ EQU $08
ERR EQU $01
ORG $DE00
*
* DISK DRIVER JUMP TABLE
*
READ JMP READSC
WRITE JMP WRITSC
VERIFY JMP BUSY
RESTOR JMP RESTR1
DRIVE JMP DRVSEL
DRVRDY JMP CHKDRV
QUICK JMP CHKDRV
COLDDR JMP INITDR
WARMDR JMP WARMD1
SEEK JMP SEEKTS
*
* RAM SPACE
*
DRVNUM FCB 0
*
*
* INITIALIZE CF CARD
*
INITDR LDD #AUXRESET
STD CF_AUX
LDD #AUXRSTREL
STD CF_AUX
LDD #HEADLBA
STD CF_HEAD
BRA WAITRDY
*
* RESTORE DISK DRIVER (SEEK TRACK 00)
*
RESTR1 BSR DRVSEL
CLRA ; Track 0
LDB #$01 ; Sector 1
*
* Seek track and sector
* A holds track number (0 - ??)
* B holds sector number (1 - ??)
* Sector numbers starts from 1
* subtract 1 to start from sector 0 on CF
*
SEEKTS DECB
PSHS A
CLRA
STD CF_SECNUM
LDB ,S
STD CF_CYLLO
LDB DRVNUM
STD CF_CYLHI
LDB #$01
STD CF_SECCNT
PULS A
CLRB
WARMD1 RTS
*
* READ SECTORS FROM CF
*
*
READSC BSR SEEKTS
LDD #CMDREAD ; IDE READ MULTIPLE
STD CF_COMAND
BSR WAITRDY
*
* READ LOOP
*
PSHS Y
LDY #256
RDLP1 BSR WAITDRQ
LDD CF_DATA
STB ,X+
LEAY -1,Y
BNE RDLP1
PULS Y
*
BSR WAITRDY
CLRB
RTS
*
* WRITE SECTOR TO CF
*
WRITSC BSR SEEKTS ; SEEK TRACK & SECTOR
LDD #CMDWRITE; IDE WRITE MULTIPLE
STD CF_COMAND
BSR WAITRDY
*
* WRITE LOOP
*
PSHS Y
LDY #256
CLRA
WRTLP1 BSR WAITDRQ
LDB ,X+
STD CF_DATA
LEAY -1,Y
BNE WRTLP1
PULS Y
*
BSR WAITRDY
CLRB
RTS
*
* CHECK FOR BUSY
* Doubles as VERIFY
*
BUSY CLRB Never busy
RTS
*
* DRIVE SELECT DISK DRIVER
*
DRVSEL LDA 3,X GET DRIVE # FROM FCB
CMPA #3
BLS DRVS2 IF > 3, SET IT TO 0
CLRA
DRVS2 STA DRVNUM
CLRB ; SET Z, CLEAR C
RTS
*
* CHECK DRIVE READY DISK DRIVER
*
CHKDRV LDA 3,X
CLRB ; CLEAR C, SET Z
RTS
*
* WAIT UNTIL READY
*
WAITRDY LDD CF_STATUS
BITB #BSY
BNE WAITRDY
LDD CF_STATUS
BITB #DRDY
BEQ WAITRDY
RTS
*
* WAIT FOR DATA REQUEST
*
WAITDRQ LDD CF_STATUS
BITB #DRQ
BEQ WAITDRQ
RTS
*
END
 
/branches/before_delete/src/flex9/f9-monio.txt
0,0 → 1,65
*
** TERMINAL AND PRINTER DRIVERS
** SYS09BUG - Spartan 3 Starter Board
*
** FLEX DRIVER MEMORY MAP:
** C700 - C83F PRINTER SPOOLER
** CCC0 - CCF7 PRINTER DRIVERS
** D370 - D3FF CONSOLE DRIVERS
** DE00 - DFAF DISK DRIVERS
*
*
** INTERRUPT VECTORS
*
IRQVEC EQU MONRAM+$08
SWIVEC EQU MONRAM+$02 SWI3 VECTOR
*
** PRINTER DRIVERS
*
ORG $CCC0
PINIT JMP DUMRTS INITIATE PRINTER
ORG $CCD8
PCHK JMP DUMRTS CHECK IF PRINTER READY
ORG $CCE4
POUT JMP DUMRTS OUTPUT CHR. TO PRINTER
ORG $CCF8
ZCCF8 FCB $01,$00,$00,$00
ZCCFC FCB $00,$00,$00,$00
*
** CONSOLE DRIVER PATCHES:
*
ORG $D370
IHND EQU * INTERRUPT HANDLER
TMON EQU * TIMER ON
TMOFF EQU * TIMER OFF
TMINT EQU * TIMER INITIALIZATION
DUMRTS EQU *
RTS
*
** SBUG MONITOR I/O CALLS
*
TERINZ JMP DUMRTS INITIATE ACIA
INCHNE JMP [MONROM+$04] INPUT WITHOUT ECHO
MONITR JMP [MONROM+$00]
INCHEK JMP [MONROM+$08] CHECK FOR TERMINAL ENTRY
OUTEEE JMP [MONROM+$0A] OUPUT CHARACTER
INEEE JMP [MONROM+$06] INPUT WITH ECHO
 
*
** AUTO BLOCK FDBS
*
ORG $D3E5
ZD3E5 FDB INCHNE INPUT - NO ECHO
IHNDVC FDB IHND IRQ INTERRUPT HANDLER
SWIVVC FDB SWIVEC SWI3 VECTOR LOCATION
IRQVVC FDB IRQVEC IRQ VECTOR LOCATION
TOFVEC FDB TMOFF TIMER OFF ROUTINE
TONVEC FDB TMON TIMER ON ROUTINE
TINVEC FDB TMINT TIMER INITIALIZE ROUTINE
MONVEC FDB MONITR MONITOR RETURN ADDRESS
TERVEC FDB TERINZ TERMINAL INITIATION
STAVEC FDB INCHEK CHECK TERMINAL STATUS
OUTVEC FDB OUTEEE TERMINAL CHAR OUTPUT
INVEC FDB INEEE TERMINAL INPUT CHARACTER
ZD3FD JMP ZCA00
END
/branches/before_delete/src/flex9/f9-fms.txt
0,0 → 1,1293
*
** FILE MANAGEMENT SYSTEM
*
ZD400 JMP >ZD436
FMSCLS JMP >ZD459
FMS JMP >FMS1
CPYMSG FCC / DISK OPERATING SYSTEM/
FCC / COPYRIGHT (C) 1980 BY/
FCC / TECHNICAL SYSTEMS CONSULTANTS/
ORG CPYMSG
FCBPTR RMB 2
CURFCB RMB 4
ZD40F RMB 2
ZD411 RMB 1
ZD412 RMB 1
ZD413 RMB 1
ZD414 RMB 1
ZD415 RMB 2
ZD417 RMB 1
ZD418 RMB 2
ZD41A RMB 1
ZD41B RMB 2
ZD41D RMB 24
VERFLG FCB $FF
*
**
*
ZD436 JSR >COLDDR
LDX #FCBPTR
LDB #$0A
BSR ZD451
LDX #Z0005
STX >ZD413
STX >ZD415
CLR >ZD41A
ZD44C LDX #ZD41B
LDB #$1A
ZD451 CLR ,X+
DECB
BNE ZD451
JMP >PRSPL5
 
ZD459 JSR >PRSPL4
ZD45C LDX >FCBPTR
BEQ ZD44C
LEAX -$1C,X
STX >CURFCB
PSHS Y
JSR >CLOSE
PULS Y
BCC ZD45C
LDX >CURFCB
CLR $02,X
JSR >PRSPL5
LDB #$FF
RTS
 
*
** FMS CALL, PROCESSING
*
FMS1 TST >ZCCFC
BEQ ZD483
JSR >PRSPL4
ZD483 PSHS Y,B
STX >CURFCB
CLR $01,X
LDB ,X
BNE DOFUNC
*
** READ/WRITE CHAR/BYTE
*
LDB $02,X
BEQ ZD4AC
CMPB #$02
BEQ ZD4A7
JSR >ZD5B4
ZD499 LDX >CURFCB
BCS ZD4C4
TST >ZCCFC
BNE ZD4C6
CLRB
PULS Y,B
RTS
 
ZD4A7 JSR >ZD6CF
BRA ZD499
ZD4AC LDB #$12
BRA ZD4C4
 
DOFUNC CMPB #$16
BLS DOFUN1
LDB #$01
BRA ZD4C4
DOFUN1 DECB
ASLB
LDX #FMSTBL
JSR [B,X]
LDX >CURFCB
BCC ZD4C6
ZD4C4 STB $01,X
ZD4C6 JSR >PRSPL5
TST $01,X
PULS Y,B
RTS
*
** FMS COMMAND VECTOR TABLE
*
FMSTBL FDB OPENRD FC 1
FDB OPENWR FC 2
FDB OPENUD FC 3
FDB CLOSE FC 4
FDB REWIND FC 5
FDB OPNDIR FC 6
FDB GETREC FC 7
FDB PUTREC FC 8
FDB RDSECT FC 9
FDB WRSECT FC 10
FDB RESV1 FC 11
FDB DELETE FC 12
FDB RENAME FC 13
FDB RESV2 FC 14
FDB NXTSEC FC 15
FDB OPNREC FC 16
FDB GETBYT FC 17
FDB PUTBYT FC 18
FDB RESV3 FC 19
FDB NXTDRV FC 20
FDB POSREC FC 21
FDB BAKREC FC 22
*
**
*
ZD4FA BSR ZD51C
BNE ZD503
LDB #$02
ORCC #$01
RTS
 
ZD503 STD ,X
LDX ,X
CLR ,X
CLR $01,X
RTS
 
ZD50C BSR ZD51C
BEQ ZD515
LDB #$0D
ORCC #$01
RTS
 
ZD515 LDD [,X]
STD ,X
ANDCC #$FE
RTS
 
ZD51C LDD >CURFCB
ADDD #$001C
LDX #FCBPTR
ZD525 LDY ,X
BNE ZD52D
ANDCC #$FB
RTS
 
ZD52D CMPD ,X
BNE ZD533
RTS
ZD533 LDX ,X
BRA ZD525
 
ZD537 LDX >CURFCB
CLRA
CLRB
BSR ZD540
LDB #$2F
ZD540 STA $11,X
LEAX $01,X
DECB
BNE ZD540
RTS
 
ZD549 LDX >CURFCB
LDB #$0B
ZD54E LDA $04,X
STA $24,X
LEAX $01,X
DECB
BNE ZD54E
RTS
 
ZD559 LDX >CURFCB
LDB #$0B
ZD55E LDA $04,X
PSHS A
LDA $24,X
CMPA ,S+
BNE ZD56E
LEAX $01,X
DECB
BNE ZD55E
ZD56E RTS
*
** GET RANDOM BYTE FROM SECTOR
*
GETBYT LDX >CURFCB
LDB $02,X
LSRB
BCC ZD5F0
LDB $23,X
JMP >ZD600
 
ZD57D LDX >CURFCB
LDB $22,X
INC $22,X
ABX
STA $40,X
INCB
BNE ZD5AC
ORCC #$01
RTS
*
** PUT RANDOM BYTE IN SECTOR
*
PUTBYT LDX >CURFCB
LDB $02,X
ANDB #$03
CMPB #$03
BNE ZD5F0
ORB #$80
STB $02,X
LDB $0F,X
BITB #$80
BNE ZD5AF
LDB $23,X
ABX
STA $40,X
ZD5AC ANDCC #$FE
RTS
 
ZD5AF LDB #$0B
ORCC #$01
RTS
 
ZD5B4 LDA $3B,X
BMI ZD5F5
BEQ ZD5C2
DEC $3B,X
LDA #$20
BRA ZD5DF
 
ZD5C2 BSR ZD5F5
BCS ZD5E1
CMPA #$18
BHI ZD5DF
BEQ ZD5C2
CMPA #$09
BNE ZD5DC
BSR ZD5F5
BCS ZD5E1
LDX >CURFCB
STA $3B,X
BRA ZD5B4
 
ZD5DC TSTA
BEQ ZD5C2
ZD5DF ANDCC #$FE
ZD5E1 RTS
*
** REWIND FILE
*
REWIND JSR >ZDAB1
BCS ZD5F0
BITA #$01
BEQ ZD5F0
STA ,X
JMP >ZD9A0
 
ZD5F0 LDB #$12
ORCC #$01
RTS
 
ZD5F5 LDX >CURFCB
LDB $22,X
BEQ ZD607
INC $22,X
ZD600 ABX
LDA $40,X
ANDCC #$FE
RTS
 
ZD607 BSR ZD60C
BCC ZD5F5
RTS
 
ZD60C LDX >CURFCB
LDD $40,X
INC $21,X
BNE ZD61A
INC $20,X
ZD61A CMPD #$0000
BEQ ZD63C
ZD620 STD $1E,X
PSHS A
LDA #$04
STA $22,X
PULS A
BSR RDSECT
BCC ZD640
BITB #$80
BEQ ZD638
LDB #$10
BRA ZD63E
 
ZD638 LDB #$09
BRA ZD63E
 
ZD63C LDB #$08
ZD63E ORCC #$01
ZD640 RTS
*
** READ SINGLE SECTOR
*
RDSECT BSR ZD668
LDX >CURFCB
JSR >DRIVE
BCS ZD65D
ZD64B BSR ZD65E
JSR >READ
BNE ZD655
ANDCC #$FE
RTS
 
ZD655 PSHS B
BSR ZD670
PULS B
BCC ZD64B
ZD65D RTS
 
ZD65E LDX >CURFCB
LDD $1E,X
LEAX $40,X
RTS
 
ZD668 CLRA
STA >ZD411
STA >ZD412
RTS
 
ZD670 BITB #$10
BNE ZD685
BITB #$80
BNE ZD69C
LDB >ZD411
INCB
CMPB #$07
BEQ ZD685
STB >ZD411
BRA RESV2
 
ZD685 CLR >ZD411
LDB >ZD412
INCB
CMPB #$04
BEQ ZD69C
STB >ZD412
LDX >CURFCB
JSR >RESTOR
*
** RESERVED
*
RESV2 ANDCC #$FE
RTS
ZD69C ORCC #$01
RTS
*
** WRITE SINGLE SECTOR
*
WRSECT BSR ZD668
LDX >CURFCB
JSR >DRIVE
BCS ZD6C9
ZD6A9 LDX >CURFCB
BSR ZD65E
JSR >WRITE
BNE ZD6BD
LDA >VERFLG
BEQ ZD6EF
JSR >VERIFY
BEQ ZD6EF
ZD6BD BITB #$40
BNE ZD6CC
PSHS B
BSR ZD670
PULS B
BCC ZD6A9
ZD6C9 RTS
 
LDB #$20
ZD6CC ORCC #$01
RTS
 
ZD6CF LDX >CURFCB
LDB $3B,X
BMI ZD714
CMPA #$20
BNE ZD6EA
INCB
STB $3B,X
CMPB #$7F
BNE ZD6EF
BRA ZD6F2
 
ZD6E5 BSR ZD6F2
BCC ZD6CF
RTS
 
ZD6EA TSTB
BEQ ZD714
BRA ZD6E5
 
ZD6EF ANDCC #$FE
RTS
 
ZD6F2 PSHS A
CMPB #$01
BNE ZD6FC
LDA #$20
BRA ZD70C
 
ZD6FC LDA #$09
BSR ZD714
PULS A
BCS ZD713
PSHS A
LDX >CURFCB
LDA $3B,X
ZD70C CLR $3B,X
BSR ZD714
PULS A
ZD713 RTS
 
ZD714 LDX >CURFCB
LDB $02,X
CMPB #$02
LBNE ZD5F0
LDB $22,X
CMPB #$04
BNE ZD72E
PSHS A
BSR ZD74B
PULS A
BCS ZD73D
ZD72E JSR >ZD57D
BCC ZD73D
LDB #$04
LDX >CURFCB
STB $22,X
ANDCC #$FE
ZD73D RTS
 
ZD73E LDX >CURFCB
CLRA
CLRB
STD $20,X
STD $42,X
BRA ZD772
 
ZD74B LDB $12,X
BNE ZD772
LDB $17,X
BEQ ZD799
CLR $17,X
BSR ZD799
BCS ZD786
BSR ZD73E
BCS ZD786
BSR ZD73E
BCS ZD786
LDX >CURFCB
LDB #$02
STB $17,X
LDD $11,X
JMP >ZDC82
 
ZD772 BSR ZD782
LDX >CURFCB
STD $40,X
JSR >WRSECT
BCC ZD799
JMP >ZDBC1
 
ZD782 BSR ZD787
LDD ,X
ZD786 RTS
 
ZD787 LDX >CURFCB
LDB $03,X
LDA #$06
MUL
LDX #ZD41D
ABX
STX >ZD41B
TST ,X
RTS
 
ZD799 BSR ZD782
BNE ZD7A2
LDB #$07
ZD79F ORCC #$01
RTS
 
ZD7A2 LDX >CURFCB
STD $13,X
TST $12,X
BNE ZD7B0
STD $11,X
ZD7B0 INC $16,X
BNE ZD7B8
INC $15,X
ZD7B8 TST $17,X
BEQ ZD7C8
JSR >ZDC43
BCS ZD79F
LDX >CURFCB
LDD $13,X
ZD7C8 JSR >ZD620
BCS ZD79F
LDX >CURFCB
LDD $40,X
PSHS B,A
BSR ZD787
PULS B,A
STD ,X
BNE ZD7E7
CLR $02,X
CLR $03,X
CLR $04,X
CLR $05,X
BRA ZD7EF
 
ZD7E7 LDY $04,X
LEAY -$01,Y
STY $04,X
ZD7EF CLRA
LDX >CURFCB
INC $21,X
BNE ZD7FB
INC $20,X
ZD7FB CLRB
ZD7FC STA $40,X
LEAX $01,X
DECB
BNE ZD7FC
LDX >CURFCB
LDD $20,X
STD $42,X
ANDCC #$FE
RTS
*
** OPEN SYSTEM INFO. RECORD
*
OPNREC CLRB
PSHS B
LDB #$03
BRA ZD825
LDX >ZD415
STX >ZD413
OPNDIR LDB >ZD413
PSHS B
LDB >ZD414
ZD825 LDX >CURFCB
STB $41,X
PULS B
STB $40,X
CLR >ZD418
CLRB
STB $22,X
RTS
*
** GET INFO RECORD
*
GETREC LDX >CURFCB
LDB $22,X
BNE ZD85D
JSR >ZD60C
BCS ZD875
LDX >CURFCB
TST >ZD418
BNE ZD852
LDD <Z0044
STD >ZD418
ZD852 LDA #$10
STA $22,X
LDD $1E,X
STD $2F,X
ZD85D LDA $22,X
STA $31,X
LDB #$18
ZD865 PSHS X,B
JSR >ZD5F5
PULS X,B
STA $04,X
LEAX $01,X
DECB
BNE ZD865
ANDCC #$FE
ZD875 RTS
*
** PUT INFORMATION RECORD
*
PUTREC LDX >CURFCB
LDA $31,X
STA $22,X
LDB #$18
ZD881 PSHS X,B
LDA $04,X
JSR >ZD714
PULS X,B
LEAX $01,X
DECB
BNE ZD881
JMP >WRSECT
 
ZD892 LDX >CURFCB
LDA $03,X
STA $23,X
LDA >ZD417
TST >ZD41A
BNE ZD8D3
STA $03,X
LDX >ZD415
STX >ZD413
ZD8AA CMPX #Z0005
BEQ ZD8BB
BSR ZD8D3
BLS ZD8EA
LDX >ZD418
STX >ZD413
BRA ZD8AA
 
ZD8BB LDX >CURFCB
LDA $23,X
STA $03,X
BPL ZD8D3
ZD8C5 JSR >NXTDRV
BCS ZD900
BSR ZD8D3
BLS ZD8EA
JSR >ZDDAD
BRA ZD8C5
 
ZD8D3 LDX >CURFCB
CLR >ZD41A
JSR >ZD549
JSR >OPNDIR
ZD8DF JSR >GETREC
BCC ZD8EB
CMPB #$08
BEQ ZD900
ORCC #$01
ZD8EA RTS
 
ZD8EB LDX >CURFCB
LDA $04,X
BEQ ZD8FE
BPL ZD8F6
BSR ZD905
ZD8F6 JSR >ZD559
BNE ZD8DF
ANDCC #$FE
RTS
 
ZD8FE BSR ZD905
ZD900 ANDCC #$FB
ANDCC #$FE
RTS
 
ZD905 LDA $33,X
BNE ZD916
LDD $2F,X
STD $32,X
LDA $31,X
STA $34,X
ZD916 RTS
 
ZD917 JSR >ZD787
BNE ZD933
BSR ZD936
BCS ZD935
LDB #$06
LDY >CURFCB
LDX >ZD41B
ZD929 LDA $5D,Y
LEAY $01,Y
STA ,X+
DECB
BNE ZD929
ZD933 ANDCC #$FE
ZD935 RTS
 
ZD936 JSR >OPNREC
JSR >ZD60C
BCS ZD946
LDX >CURFCB
LDB #$10
STB $22,X
ZD946 RTS
 
ZD947 JSR >ZD787
BSR ZD936
BCS ZD946
LDB #$06
LDY >CURFCB
LDX >ZD41B
ZD957 LDA ,X+
STA $5D,Y
LEAY $01,Y
DECB
BNE ZD957
JSR >WRSECT
BCC ZD946
JMP >ZDBC1
*
**
*
RESV1 LDX >CURFCB
LDA #$02
STA $02,X
LDD $2F,X
STD $1E,X
JSR >RDSECT
BCS ZD983
JSR >PUTREC
BCC ZD985
JMP >ZDBC1
 
ZD983 LDB #$0A
ZD985 RTS
*
** OPEN FOR READ
*
OPENRD JSR >ZD4FA
BCS ZD9C8
JSR >ZD892
BCS ZD9C8
BNE ZD9CD
LDX >CURFCB
TST >ZD41A
BEQ ZD9A0
LDA $0F,X
BITA #$20
BNE ZD9C9
ZD9A0 JSR >ZDCC0
BCS ZD9CF
LDD $11,X
STD $40,X
JSR >ZDA76
LDB $17,X
BEQ ZD9C6
ZD9B3 PSHS B
JSR >ZD60C
PULS B
BCS ZD9C8
DECB
BNE ZD9B3
LDX >CURFCB
CLRB
STB $22,X
ZD9C6 ANDCC #$FE
ZD9C8 RTS
 
ZD9C9 LDB #$11
BRA ZD9CF
 
ZD9CD LDB #$04
ZD9CF PSHS B
JSR >ZD50C
PULS B
ORCC #$01
RTS
 
OPENWR LDX >CURFCB
TST $03,X
BPL ZD9E8
JSR >NXTDRV
BCC ZD9E8
LDB #$10
RTS
 
ZD9E8 JSR >ZD4FA
BCS ZD9CF
JSR >ZD537
JSR >ZD917
BCS ZD9CF
JSR >ZD892
BCS ZD9CF
BNE ZDA00
LDB #$03
BRA ZD9CF
 
ZDA00 JSR >ZDCC0
BCS ZD9CF
LDX >CURFCB
LDB #$0A
ZDA0A CLR $0F,X
LEAX $01,X
DECB
BNE ZDA0A
LDX >CURFCB
LDD $32,X
BEQ ZDA40
STD $2F,X
LDA $34,X
STA $31,X
LDD >DATERG
STD $19,X
LDA >YEAR
STA $1B,X
JSR >ZDDAD
JSR >RESV1
BCS ZD9CF
BSR ZDA76
LDA #$04
STA $22,X
ANDCC #$FE
RTS
 
ZDA40 LDX >CURFCB
CLR $17,X
INC $12,X
LDD $2F,X
JSR >ZD620
BCS ZDA5E
JSR >ZD772
BCS ZDA5E
JSR >WRSECT
BCC ZDA61
JSR >ZDBC1
ZDA5E JMP >ZD9CF
 
ZDA61 LDX >CURFCB
LDD $1E,X
STD $32,X
LDA #$10
STA $34,X
JSR >ZD947
BCS ZDA5E
BRA ZDA00
 
ZDA76 LDX >CURFCB
LDA ,X
STA $02,X
CLR ,X
CLR $3B,X
CLRA
STA $22,X
RTS
*
** READ/WRITE NEXT SECTOR
*
NXTSEC BSR ZDAB1
BCS ZDA99
CLR ,X
LSRA
LBCS ZD60C
LDB #$04
STB $22,X
ANDCC #$FE
ZDA99 RTS
 
ZDA9A LDX >CURFCB
LDA $02,X
CMPA #$83
BNE ZDAAE
LDA #$03
STA $02,X
ZDAA7 JSR >WRSECT
LBCS ZDBC1
ZDAAE ANDCC #$FE
RTS
 
ZDAB1 BSR ZDA9A
BCS ZDAC2
LDX >CURFCB
LDA $02,X
CMPA #$03
BLS ZDAAE
LDB #$12
ORCC #$01
ZDAC2 RTS
 
CLOSE BSR ZDAB1
BCS ZDAF8
CMPA #$02
BEQ ZDAD3
ZDACB LDX >CURFCB
CLR $02,X
JMP >ZD50C
 
ZDAD3 LDA $12,X
BNE ZDADD
JSR >ZDBA7
BRA ZDAF6
 
ZDADD BSR ZDAA7
BCS ZDAF8
LDX >CURFCB
TST $17,X
BEQ ZDAEE
JSR >ZDC98
BCS ZDAF8
ZDAEE JSR >RESV1
BCS ZDAF8
JSR >ZD947
ZDAF6 BCC ZDACB
ZDAF8 RTS
*
** OPEN FOR UPDATE
*
OPENUD JSR >OPENRD
BCS ZDB26
JSR >ZD60C
BCS ZDB26
LDA #$03
BRA ZDB1F
*
**
*
RESV3 JSR >OPENRD
BCS ZDB26
LDX >CURFCB
LDA $0F,X
BITA #$80
BNE ZDB27
LDD $13,X
JSR >ZD620
BCS ZDB26
LDA #$02
ZDB1F LDX >CURFCB
STA $02,X
ANDCC #$FE
ZDB26 RTS
 
ZDB27 LDB #$0B
ORCC #$01
RTS
*
** RENAME FILE
*
RENAME BSR ZDB63
JSR >ZD892
BCS ZDB5D
BEQ ZDB59
LDX >CURFCB
LDB #$0B
ZDB3A LDA $24,X
STA $04,X
LEAX $01,X
DECB
BNE ZDB3A
BSR ZDB93
BCS ZDB5D
LDX >CURFCB
LDA $0F,X
BITA #$80
BNE ZDB27
BITA #$60
BNE ZDB5E
BSR ZDB63
BRA ZDBAE
 
ZDB59 LDB #$03
ORCC #$01
ZDB5D RTS
ZDB5E LDB #$0C
ORCC #$01
RTS
 
ZDB63 LDX >CURFCB
LDA #$0B
STA >ZD411
ZDB6B LDA $04,X
LDB $35,X
STA $35,X
STB $04,X
LEAX $01,X
DEC >ZD411
BNE ZDB6B
LDX >CURFCB
LDA $0C,X
BNE ZDB8F
LDB #$03
ZDB85 LDA $3D,X
STA $0C,X
LEAX $01,X
DECB
BNE ZDB85
ZDB8F LDX >CURFCB
RTS
 
ZDB93 BSR ZDB63
ZDB95 JSR >ZD892
BCS ZDBA1
BNE ZDBA2
LDX >CURFCB
ANDCC #$FE
ZDBA1 RTS
 
ZDBA2 LDB #$04
ORCC #$01
RTS
 
ZDBA7 LDX >CURFCB
LDA #$FF
STA $04,X
ZDBAE JSR >RESV1
LDX >CURFCB
LDA #$00
STA $02,X
RTS
 
ZDBB9 STD $40,X
JSR >WRSECT
BCC ZDBD5
ZDBC1 BITB #$40
BNE ZDBCD
BITB #$80
BEQ ZDBD3
LDB #$10
BRA ZDBD3
ZDBCD LDB #$0B
BRA ZDBD3
 
LDB #$0A
ZDBD3 ORCC #$01
ZDBD5 RTS
*
** DELETE FILE
*
DELETE JSR >ZD917
BCS ZDC39
BSR ZDB95
BCS ZDC39
LDX >CURFCB
LDA $0F,X
BITA #$80
BNE ZDC3A
BITA #$60
BNE ZDC3E
JSR >ZD787
LDX >ZD41B
LDD $02,X
BNE ZDC05
LDX >CURFCB
LDD $11,X
BEQ ZDC31
LDX >ZD41B
STD ,X
BRA ZDC19
 
ZDC05 LDX >CURFCB
JSR >ZD620
BCS ZDC39
LDX >CURFCB
LDD $11,X
BEQ ZDC31
BSR ZDBB9
BCS ZDC39
ZDC19 LDX >CURFCB
LDD $13,X
LDX >ZD41B
STD $02,X
LDX >CURFCB
LDD $15,X
LDX >ZD41B
ADDD $04,X
STD $04,X
ZDC31 JSR >ZDBA7
BCS ZDC39
JSR >ZD947
ZDC39 RTS
 
ZDC3A LDB #$0B
BRA ZDC40
ZDC3E LDB #$0C
ZDC40 ORCC #$01
RTS
 
ZDC43 LDD $1E,X
INCB
CMPB $3C,X
BLS ZDC4F
LDB #$01
INCA
ZDC4F CMPD $13,X
BNE ZDC63
LDA $37,X
CMPA #$FF
BEQ ZDC63
INCA
STA $37,X
ANDCC #$FE
RTS
 
ZDC63 BSR ZDC98
BCS ZDC97
LDX >CURFCB
LDA $3A,X
ADDA #$03
BNE ZDC87
LDD $1E,X
CMPD $11,X
BEQ ZDC7F
LDB #$17
ORCC #$01
RTS
 
ZDC7F LDD $40,X
ZDC82 STD $38,X
LDA #$04
ZDC87 STA $3A,X
LDD $13,X
STD $35,X
LDA #$01
STA $37,X
ANDCC #$FE
ZDC97 RTS
 
ZDC98 LDD $38,X
JSR >ZD620
BCS ZDC97
LDX >CURFCB
TFR X,Y
LDB $3A,X
ABX
LDB #$03
ZDCAB LDA $35,Y
LEAY $01,Y
STA $40,X
LEAX $01,X
DECB
BNE ZDCAB
JSR >WRSECT
BCC ZDC97
JMP >ZDBC1
 
ZDCC0 JSR >OPNREC
JSR >ZD60C
BCS ZDD0E
LDX >CURFCB
CLRA
CLRB
STD $20,X
LDA $67,X
STA $3C,X
CLRB
ZDCD7 CLR $40,X
LEAX $01,X
DECB
BNE ZDCD7
LDX >CURFCB
ANDCC #$FE
RTS
*
** BACKUP ONE RECORD
*
BAKREC LDX >CURFCB
LDA $17,X
BEQ ZDD0A
LDD $20,X
SUBD #$0001
BPL ZDCF8
JMP >ZDD9A
*
** POSITION TO RECORD N
*
ZDCF8 STD $20,X
POSREC JSR >ZDAB1
BCS ZDD0E
RORA
BCC ZDD0A
CLR ,X
LDA $17,X
BNE ZDD0F
ZDD0A LDB #$12
ORCC #$01
ZDD0E RTS
 
ZDD0F CLR >ZD411
LDD $11,X
LDY $20,X
BEQ ZDD85
JSR >ZDD9F
BCS ZDD0E
CLRA
CLRB
ZDD22 TST $02,X
BEQ ZDD9A
ADDB $02,X
ADCA #$00
STX >ZD40F
LDX >CURFCB
CMPD $20,X
BCC ZDD62
LDX >ZD40F
LEAX $03,X
PSHS A
LDA >ZD411
INCA
STA >ZD411
CMPA #$54
BEQ ZDD50
CMPA #$A8
PULS A
BEQ ZDD9A
BRA ZDD22
 
ZDD50 PSHS B
LDX >CURFCB
LDD $40,X
BSR ZDD9F
BCS ZDD9A
PULS B
PULS A
BRA ZDD22
 
ZDD62 SUBD $20,X
LDX >ZD40F
LDA $02,X
PSHS B
SUBA ,S+
DECA
TFR A,B
LDA ,X
ADDB $01,X
LDX >CURFCB
BCS ZDD7F
ZDD7A CMPB $3C,X
BLS ZDD85
ZDD7F SUBB $3C,X
INCA
BRA ZDD7A
 
ZDD85 JSR >ZD620
BCS ZDD9E
LDX >CURFCB
LDD $42,X
CMPD $20,X
BEQ ZDDAA
LDB #$19
BRA ZDD9C
 
ZDD9A LDB #$18
ZDD9C ORCC #$01
ZDD9E RTS
 
ZDD9F JSR >ZD620
BCS ZDDAC
LDX >CURFCB
LDB #$44
ABX
ZDDAA ANDCC #$FE
ZDDAC RTS
 
ZDDAD LDX >CURFCB
LDB #$0B
ZDDB2 LDA $24,X
STA $04,X
LEAX $01,X
DECB
BNE ZDDB2
RTS
*
** FIND NEXT DRIVE
*
NXTDRV LDX >CURFCB
LDA $03,X
INCA
CMPA #$04
BCC ZDDD6
STA $03,X
BNE ZDDD0
JSR >DRVRDY
BRA ZDDD3
 
ZDDD0 JSR >QUICK
ZDDD3 BCS NXTDRV
RTS
 
ZDDD6 LDB #$10
ORCC #$01
RTS
END
 
/branches/before_delete/src/flex9/flex9_ide_b16_0.vhd
0,0 → 1,64
INIT_00 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_02 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_08 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_09 => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0a => x"0000000000000000000000000000000000000000000000000000000000000000",
INIT_0b => x"000000000000000000000000000000000000000000000000000000