home *** CD-ROM | disk | FTP | other *** search
Text File | 2019-04-13 | 17.6 KB | 1,268 lines |
- ;*** ├ONFIGURATION ╨ROGRAM ***
-
- .SEQ ACEHEAD.S
- .SEQ KERNHEAD.S
- .ORG ACE┴PP┴DDRESS
- .OBJ "@0:CONFIG"
-
- JMP MAIN
- .BYTE "C","╞",ACE╔─3
- .BYTE 64,0
-
- KERNEL╙ETLFS = $FFBA
- KERNEL╙ETNAM = $FFBD
- KERNEL╧PEN = $FFC0
- KERNEL├LOSE = $FFC3
- KERNEL├HKIN = $FFC6
- KERNEL├HKOUT = $FFC9
- KERNEL├LRCHN = $FFCC
- KERNEL├HRIN = $FFCF
- KERNEL╠OAD = $FFD5
- KERNEL╙WAPPER = $FF5F
- ST = $90
- TOTAL┬ANKS .BUF 2
- CHR├╥ = 13
- CHR╤UOTE = 34
-
- CONFIG┬UF = 2 ;(2)
- SYS╬AME = 4 ;(2)
- RAM0╞REE═AP = 6 ;(2)
- ACE┼ND╨AGE = 8 ;(1)
- SYS╘YPE = 9 ;(1)
- CHARSET4BIT╨ = 10 ;(2)
- MEM╥EAD = 12 ;(2)
- MEM╫RITE = 14 ;(2)
- BANKS = 16 ;(1)
- BANK╠IMIT = 17 ;(1)
- SAVE0 = 18 ;(2)
- SAVE2 = 20 ;(2)
- SAVE╬ = 22 ;(2)
- TITLE╨TR = $70 ;(2)
-
- MAIN = *
- LDA #0
- STA ACE╘OTAL═EMORY+0
- STA ACE╘OTAL═EMORY+1
- STA TOTAL┬ANKS+0
- STA TOTAL┬ANKS+1
- LDA #<TITLE
- LDY #>TITLE
- STA TITLE╨TR+0
- STY TITLE╨TR+1
- JSR LOAD├ONFIG
- BCS +
- JSR LOAD├HARSET
- BCS +
- JSR LOAD╙HELL
- BCS +
- JSR LOAD├HARSET4BIT
- BCS +
- JSR SCREEN╔NIT
- JSR SET─ATE
- JSR DISPLAY─ATE
- JSR GET╥AMLINK╨ARMS
- JSR INTERNAL═EMORY
- JSR REU═EMORY
- JSR RLREU═EMORY
- JSR RL═EMORY
- LDA TOTAL┬ANKS+0
- LDY TOTAL┬ANKS+1
- STA ACE╘OTAL═EMORY+2
- STY ACE╘OTAL═EMORY+3
- JSR TOTAL═EMORY
- LDX #3
- - LDA ACE╞REE═EMORY,X
- STA ACE╘OTAL═EMORY,X
- DEX
- BPL -
- CLC
- LDA #<TITLE
- LDY #>TITLE
- STA 2
- STY 3
- SEC
- LDA TITLE╨TR+0
- SBC #<TITLE
- STA 4
- LDA TITLE╨TR+1
- SBC #>TITLE
- STA 5
- CLC
- + RTS
-
- TEST═EMORY╘YPE = * ;( .┴=TYPE, .╪=BANK╠IMIT ) : .┴=BANK├OUNT
- STA MP+3
- STX BANK╠IMIT
- LDA #$00
- LDY #$80 ;** PAGE TO USE FOR TESTING RAM
- LDX #$00
- STA MP+0
- STY MP+1
- STX MP+2
- LDA #0
- STA BANKS
-
- NEXT┬ANK = *
- LDA BANKS
- STA MP+2
- JSR SAVE┬ANK
- LDA #$FF-$CB
- STA MEM╫RITE
- LDA MP+2
- STA MEM╫RITE+1
- LDX #MEM╫RITE
- LDY #2
- JSR ZPSTORE
- LDA #$FF-$CB
- LDX MP+2
- JSR TEST┬ANK
- BCS BANK╞AIL
- LDA #$CB
- STA MEM╫RITE
- LDX #MEM╫RITE
- LDY #2
- JSR ZPSTORE
- LDA #$CB
- LDX MP+2
- JSR TEST┬ANK
- BCS BANK╞AIL
- LDA #$CB
- LDX #0
- JSR TEST┬ANK
- BCS BANK╞AIL
- LDA MP+2
- CMP #2
- BCC +
- LDA #$CB
- LDX #2
- JSR TEST┬ANK
- BCS BANK╞AIL
- + JSR RESTORE┬ANK
- INC BANKS
- LDA BANKS
- CMP BANK╠IMIT
- BCC NEXT┬ANK
-
- BANK╞AIL = *
- JSR RESTORE╫RAP┬ANKS
- LDA BANKS
- RTS
-
- SAVE┬ANK = * ;()
- LDX #SAVE╬
- LDY #2
- LDA MP+2
- CMP #0
- BNE +
- LDX #SAVE0
- + CMP #2
- BNE +
- LDX #SAVE2
- + JSR ZPLOAD
- RTS
-
- RESTORE┬ANK = * ;()
- LDA MP+2
- CMP #0
- BEQ +
- CMP #2
- BEQ +
- LDX #SAVE╬
- LDY #2
- JSR ZPSTORE
- + RTS
-
- RESTORE╫RAP┬ANKS = * ;()
- LDA BANKS
- CMP #3
- BCC +
- + LDA #2
- STA MP+2
- LDX #SAVE2
- LDY #2
- JSR ZPSTORE
- LDA BANKS
- CMP #1
- BCC +
- LDA #0
- STA MP+2
- LDX #SAVE0
- LDY #2
- JSR ZPSTORE
- + RTS
-
- RD╓AL = 10 ;(1)
- RD┬ANK = 11 ;(1)
-
- TEST┬ANK = * ;( .┴=DATA, .╪=BANK ) : .├╙=ERR
- STA RD╓AL
- LDA MP+2
- STA RD┬ANK
- STX MP+2
- LDA #$FF
- STA MEM╥EAD
- STA MEM╥EAD+1
- LDX #MEM╥EAD
- LDY #2
- JSR ZPLOAD
- LDA MEM╥EAD
- CMP RD╓AL
- BNE +
- LDA MEM╥EAD+1
- CMP MP+2
- BNE +
- LDA RD┬ANK
- STA MP+2
- CLC
- RTS
- + LDA RD┬ANK
- STA MP+2
- SEC
- RTS
-
- PUTS = *
- STA $40
- STY $41
- LDY #0
- - LDA ($40),Y
- BEQ +
- JSR CHROUT
- INY
- BNE -
- INC $41
- BNE -
- + RTS
-
- LOAD├ONFIG = *
- LDA #0
- LDX 186
- LDY #0
- JSR KERNEL╙ETLFS
- LDA #10
- LDX #<LOAD├ONFIG╬AME
- LDY #>LOAD├ONFIG╬AME
- JSR KERNEL╙ETNAM
- LDA #0
- LDX CONFIG┬UF
- LDY CONFIG┬UF+1
- JSR KERNEL╠OAD
- BCS +
- CLC
- RTS
- + LDA #<BAD├ONFIG
- LDY #>BAD├ONFIG
- JSR PUTS
- SEC
- RTS
-
- LOAD├ONFIG╬AME = *
- .ASC "CONFIG.SYS"
- BAD├ONFIG = *
- .ASC "┼RROR ATTEMPTING TO B-LOAD "
- .BYTE CHR╤UOTE
- .ASC "CONFIG.SYS"
- .BYTE CHR╤UOTE
- .ASC ", ABORTING."
- .BYTE CHR├╥,0
-
- LOAD├HARSET = *
- LDA #0
- LDX 186
- LDY #0
- JSR KERNEL╙ETLFS
- LDA #11
- LDX #<LOAD├HARSET╬AME
- LDY #>LOAD├HARSET╬AME
- JSR KERNEL╙ETNAM
- LDA #0
- LDX #<$2000
- LDY #>$2000
- JSR KERNEL╠OAD
- BCS +
- CLC
- RTS
- + LDA #<BAD├HARSET
- LDY #>BAD├HARSET
- JSR PUTS
- SEC
- RTS
-
- LOAD├HARSET╬AME = *
- .ASC "ACE-CHARSET"
- BAD├HARSET = *
- .ASC "┼RROR ATTEMPTING TO B-LOAD "
- .BYTE CHR╤UOTE
- .ASC "ACE-CHARSET"
- .BYTE CHR╤UOTE
- .ASC ", ABORTING."
- .BYTE CHR├╥,0
-
- LOAD╙HELL = *
- LDA #0
- LDX 186
- LDY #0
- JSR KERNEL╙ETLFS
- LDA #2
- LDX #<LOAD╙HELL╬AME
- LDY #>LOAD╙HELL╬AME
- JSR KERNEL╙ETNAM
- LDA #0
- LDX #<ACE╙HELL┴DDRESS
- LDY #>ACE╙HELL┴DDRESS
- JSR KERNEL╠OAD
- BCS +
- CLC
- RTS
- + LDA #<BAD╙HELL
- LDY #>BAD╙HELL
- JSR PUTS
- SEC
- RTS
-
- LOAD╙HELL╬AME = *
- .ASC "SH"
- BAD╙HELL = *
- .ASC "┼RROR ATTEMPTING TO B-LOAD "
- .BYTE CHR╤UOTE
- .ASC "SH"
- .BYTE CHR╤UOTE
- .ASC ", ABORTING."
- .BYTE CHR├╥,0
-
- LOAD├HARSET4BIT = *
- LDA SYS╘YPE
- CMP #64
- BNE LOAD├H4┼XIT
- LDY #$C0
- LDA (CONFIG┬UF),Y
- BPL LOAD├H4┼XIT
- LDA #0
- LDX 186
- LDY #0
- JSR KERNEL╙ETLFS
- LDA #16
- LDX #<LOAD├H4╬AME
- LDY #>LOAD├H4╬AME
- JSR KERNEL╙ETNAM
- LDA #0
- LDX #<CHAR4BIT┬UF
- LDY #>CHAR4BIT┬UF
- JSR KERNEL╠OAD
- BCS +
- SEI
- LDA #$30
- STA $01
- LDX #0
- - LDA CHAR4BIT┬UF+$000,X
- STA $D800,X
- LDA CHAR4BIT┬UF+$100,X
- STA $D900,X
- LDA CHAR4BIT┬UF+$200,X
- STA $DA00,X
- LDA CHAR4BIT┬UF+$300,X
- STA $DB00,X
- INX
- BNE -
- LDA #$36
- STA $01
- CLI
- LOAD├H4┼XIT = *
- CLC
- RTS
- + LDA #<BAD├H4
- LDY #>BAD├H4
- JSR PUTS
- SEC
- RTS
-
- LOAD├H4╬AME = *
- .ASC "ACE-CHARSET-4BIT"
- BAD├H4 = *
- .ASC "┼RROR ATTEMPTING TO B-LOAD "
- .BYTE CHR╤UOTE
- .ASC "ACE-CHARSET-4BIT"
- .BYTE CHR╤UOTE
- .ASC ", ABORTING."
- .BYTE CHR├╥,0
-
- SCREEN╔NIT = *
- LDA #147
- JSR $FFD2
- LDA SYS╬AME+0
- LDY SYS╬AME+1
- JSR PUTS
- RTS
-
- DISPLAY─ATE = *
- LDA #<DATE┬UF
- LDY #>DATE┬UF
- JSR GETDATE
- ;** YEAR
- LDA DATE┬UF+0
- LDX #11
- JSR PUT─IGITS
- LDA DATE┬UF+1
- LDX #13
- JSR PUT─IGITS
- ;** MONTH
- LDA DATE┬UF+2
- CMP #$10
- BCC +
- SEC
- SBC #$10-10
- + TAX
- LDA MONTH╙TR+0,X
- STA DATE╙TR+7
- LDA MONTH╙TR+13,X
- STA DATE╙TR+8
- LDA MONTH╙TR+26,X
- STA DATE╙TR+9
- ;** DAY
- LDA DATE┬UF+3
- LDX #4
- JSR PUT─IGITS
- ;** HOUR
- LDA DATE┬UF+4
- LDX #"A"
- CMP #$00
- BNE +
- LDA #$12
- JMP PUT╚OUR
- + CMP #$12
- BCC PUT╚OUR
- LDX #"P"
- CMP #$12
- BEQ PUT╚OUR
- SEI
- SED
- SEC
- SBC #$12
- CLD
- CLI
- PUT╚OUR = *
- STX DATE╙TR+26
- LDX #17
- JSR PUT─IGITS
- ;** MINUTE
- LDA DATE┬UF+5
- LDX #20
- JSR PUT─IGITS
- ;** SECOND
- LDA DATE┬UF+6
- LDX #23
- JSR PUT─IGITS
- ;** DAY OF WEEK
- LDA DATE┬UF+7
- AND #$07
- TAX
- LDA DOW╙TR+0,X
- STA DATE╙TR+0
- LDA DOW╙TR+8,X
- STA DATE╙TR+1
- LDA DOW╙TR+16,X
- STA DATE╙TR+2
- LDA #<DATE╙TR
- LDY #>DATE╙TR
- JSR PUTS
- RTS
-
- PUT─IGITS = * ;( .┴=NUM, .╪=OFFSET )
- PHA
- LSR
- LSR
- LSR
- LSR
- ORA #$30
- STA DATE╙TR,X
- PLA
- AND #$0F
- ORA #$30
- STA DATE╙TR+1,X
- RTS
-
- DATE╙TR = *
- ;0123456789012345678901234567
- .ASC "╘UE-05-═AY-1993 11:34:12 PM"
- .BYTE 13,13,0
- DATE┬UF .BUF 10
- DOW╙TR = *
- .ASC "*╙═╘╫╘╞╙"
- .ASC "*UOUEHRA"
- .ASC "*NNEDUIT"
- MONTH╙TR = *
- .ASC "*╩╞═┴═╩╩┴╙╧╬─"
- .ASC "*AEAPAUUUECOE"
- .ASC "*NBRRYNLGPTVC"
-
- TRY─ATE = 10
-
- SET─ATE = *
- LDY #$82
- - STY TRY─ATE
- LDA (CONFIG┬UF),Y
- CMP #$FF
- BEQ +
- JSR CMD╧PEN
- BCS +
- LDA #<QUERY─ATE╙TR
- LDY #>QUERY─ATE╙TR
- JSR CMD╙END
- BCS QUERY┼RROR
- LDA #<DATE┬UF
- LDY #>DATE┬UF
- LDX #9
- JSR CMD─ATA
- BCS QUERY┼RROR
- JSR CMD├LOSE
- JMP CONVERT├MD─ATE
-
- QUERY┼RROR = *
- JSR CMD├LOSE
- + INC TRY─ATE
- LDY TRY─ATE
- CPY #$86
- BCC -
-
- SET─EFAULT─ATE = *
- LDA CONFIG┬UF
- LDY CONFIG┬UF+1
- CLC
- ADC #$86
- BCC +
- INY
- + JMP SETDATE
-
- QUERY─ATE╙TR = *
- .ASC "T-RB"
- .BYTE 13,0
-
- CONVERT├MD─ATE = *
- LDA DATE┬UF+4
- LDX DATE┬UF+7
- BEQ +
- SEI
- SED
- CLC
- ADC #$12
- CLD
- CLI
- + CMP #$12
- BNE +
- LDA #$00
- + CMP #$24
- BNE +
- LDA #$12
- + STA DATE┬UF+4
- CLC
- LDA DATE┬UF+0
- ADC #$51
- STA DATE┬UF+7
- LDX #$19
- LDA DATE┬UF+1
- CMP #$70
- BCS +
- LDX #$20
- + STX DATE┬UF+0
- LDA #<DATE┬UF
- LDY #>DATE┬UF
- JSR SETDATE
- RTS
-
- CMD╧PEN = * ;( .┴=DEVICE ) : .├╙=ERR
- TAX
- LDA #6
- LDY #15
- JSR KERNEL╙ETLFS
- LDA #0
- JSR KERNEL╙ETNAM
- JSR KERNEL╧PEN
- RTS
-
- CMD├LOSE = * ;()
- CLC
- LDA #6
- JSR KERNEL├LOSE
- RTS
-
- CMD╙END = * ;( (.┴┘)=CMD╙TR┌ ) : .├╙=ERR
- STA $40
- STY $41
- LDX #6
- JSR KERNEL├HKOUT
- BCC +
- RTS
- + LDY #0
- - LDA ($40),Y
- BEQ +
- JSR $FFD2
- INY
- BNE -
- + JSR KERNEL├LRCHN
- CLC
- RTS
-
- CMD─ATA = * ;( (.┴┘)=CMD┬UF, .╪=LEN ) : .├╙=ERR
- STA $40
- STY $41
- STX $42
- LDX #6
- JSR KERNEL├HKIN
- BCC +
- RTS
- + LDX #0
- JSR KERNEL├HRIN
- CMP #"0"
- BCC ++
- CMP #"9"+1
- BCS ++
- BAD─ATA = *
- - JSR KERNEL├HRIN
- BCS +
- BIT ST
- BVS +
- CMP #13
- BNE -
- + JSR KERNEL├LRCHN
- SEC
- RTS
- + LDY #0
- STA ($40),Y
- INY
- - JSR KERNEL├HRIN
- STA ($40),Y
- INY
- CPY $42
- BCC -
- CMP #13
- BNE BAD─ATA
- JSR KERNEL├LRCHN
- CLC
- RTS
-
- GET╥AMLINK╨ARMS = *
- LDY #$80
- LDA (CONFIG┬UF),Y
- JSR CMD╧PEN
- BCS RL╨ARMS┼RROR
-
- ;** RAMLINK RAM ACCESS
- LDA #<PART╥L├MD
- LDY #>PART╥L├MD
- JSR CMD╙END
- BCS RL╨ARMS┼RROR
- LDA #<RL╔DENT
- LDY #>RL╔DENT
- JSR CHECK╨ARTITION
- BCS +
- STA ACE╥AMLINK╙TART
- STY ACE╥AMLINK╙TART+1
- STX ACE╥AMLINK┬ANKS
-
- ;** INDIRECT REU ACCESS
- + LDA #<PART╥LREU├MD
- LDY #>PART╥LREU├MD
- JSR CMD╙END
- BCS RL╨ARMS┼RROR
- LDA #<RLREU╔DENT
- LDY #>RLREU╔DENT
- JSR CHECK╨ARTITION
- BCS RL╨ARMS┼RROR
- STA ACE╥AMLINK╥EU╙TART
- STY ACE╥AMLINK╥EU╙TART+1
- STX ACE╥AMLINK╥EU┬ANKS
-
- RL╨ARMS┼RROR = *
- JSR CMD├LOSE
- RTS
-
- CHECK╨ARTITION = * ;( (.┴┘)=NAME ) : .├╙=ERR, .┴┘=START, .╪=BANKS
- STA $44
- STY $45
- LDA #<PARTITION┬UF
- LDY #>PARTITION┬UF
- LDX #31
- JSR CMD─ATA
- BCS CHECK┼RR┼XIT
- LDA PARTITION┬UF+0
- CMP #7
- BNE CHECK┼RR┼XIT
- LDY #0
- - LDA ($44),Y
- BEQ +
- CMP PARTITION┬UF+3,Y
- BNE CHECK┼RR┼XIT
- INY
- BNE -
- + LDA PARTITION┬UF+21
- LDY PARTITION┬UF+20
- LDX PARTITION┬UF+28
- CLC
- RTS
-
- CHECK┼RR┼XIT = *
- SEC
- RTS
-
- PART╥L├MD = *
- .ASC "G-P"
- .BYTE 31,0
- RL╔DENT = *
- .ASC "RL-RAM"
- .BYTE $A0,0
- PART╥LREU├MD = *
- .ASC "G-P"
- .BYTE 30,0
- RLREU╔DENT = *
- .ASC "INDIRECT-REU"
- .BYTE $A0,0
- PARTITION┬UF .BUF 35
-
- PUTNUM = * ;( [$44]=NUM, .┴=WIDTH )
- PHA
- LDA #<OUTCHAR
- LDY #>OUTCHAR
- STA ZP+0
- STY ZP+1
- LDX #$44
- PLA
- JSR UTOA
- JSR PUTCOMMA
- LDX #0
- - LDA OUTCHAR,X
- BEQ +
- JSR CHROUT
- INX
- BNE -
- + RTS
- OUTCHAR .BUF 11
-
- PUTCOMMA = * ;( OUTCHAR )
- LDX #$FF
- - INX
- LDA OUTCHAR,X
- BNE -
- - DEX
- DEX
- DEX
- DEX
- CPX #$80
- BCC +
- RTS
- + CPX #0
- BCS +
- RTS
- + LDA OUTCHAR,X
- CMP #" "
- BNE +
- RTS
- + STX $44
- LDY #0
- - LDA OUTCHAR+1,Y
- STA OUTCHAR,Y
- INY
- CPY $44
- BCC -
- LDA #"_"
- STA OUTCHAR,Y
- JMP --
- RTS
-
- DISPLAY┴VAIL = * ;( (.┴┘)=NAME, (.╪,$45)=BANKS )
- STA $40
- STY $41
- STX $44
- LDY #0
- - LDA ($40),Y
- JSR CHROUT
- INY
- CPY #6
- BCC -
- LDA #":"
- JSR CHROUT
- TXA
- CLC
- ADC TOTAL┬ANKS
- STA TOTAL┬ANKS
- LDA $45
- ADC TOTAL┬ANKS+1
- STA TOTAL┬ANKS+1
- LDA #0
- STA $46
- STA $47
- LDX #6
- - ASL $44
- ROL $45
- ROL $46
- ROL $47
- DEX
- BNE -
- LDA #6
- JSR PUTNUM
- LDA #"╦"
- JSR CHROUT
- RTS
-
- ADD╘O╞REE = * ;( [$44]=BYTES )
- CLC
- LDA $44
- ADC ACE╞REE═EMORY+0
- STA ACE╞REE═EMORY+0
- LDA $45
- ADC ACE╞REE═EMORY+1
- STA ACE╞REE═EMORY+1
- LDA $46
- ADC ACE╞REE═EMORY+2
- STA ACE╞REE═EMORY+2
- BCC +
- INC ACE╞REE═EMORY+3
- + RTS
-
- DISPLAY╞REE = * ;( [$44]=BYTES )
- LDA #<FREE═SG
- LDY #>FREE═SG
- JSR PUTS
- LDA #10
- JSR PUTNUM
- LDA #13
- JSR CHROUT
- RTS
- FREE═SG = *
- .ASC " FREE:"
- .BYTE 0
-
- RESET╞REE = *
- LDA #0
- LDX #3
- - STA $44,X
- DEX
- BPL -
- RTS
-
- INTERNAL═EMORY = *
- LDA #ACE═EM╔NTERNAL
- LDX #255
- SEI
- JSR TEST═EMORY╘YPE
- CLI
- STA ACE╔NTERNAL┬ANKS
- PHA
- JSR INSTALL╔NTERN╓ECTORS
- PLA
- TAX
- LDA #0
- STA $45
- LDA #<INTERNAL╬AME
- LDY #>INTERNAL╬AME
- JSR DISPLAY┴VAIL
- JSR RESET╞REE
-
- ;** RAM0
- LDA #ACE═EM╔NTERNAL
- STA MP+3
- LDA #0
- STA ACE╔NTERNAL├UR
- LDA RAM0╞REE═AP+0
- LDY RAM0╞REE═AP+1
- STA ACE╥AM0╞REEMAP+0
- STY ACE╥AM0╞REEMAP+1
- LDX #0
- STA MP+0
- STY MP+1
- STX MP+2
- LDY #$A3
- BIT SYS╘YPE
- BMI +
- LDY #$C1
- + LDA (CONFIG┬UF),Y
- TAY
- LDA #1
- LDX #>ACE┴PP┴DDRESS
- JSR INIT┬ANKS
- JSR FREE╥AM0┴FTER╦ERNEL
-
- ;** RAM1
- BIT SYS╘YPE
- BPL EXP╔NTERNAL64
- LDA #$00
- STA MP+0
- LDY #$A0
- LDA (CONFIG┬UF),Y
- STA MP+1
- STA ACE╥AM1╞REEMAP
- LDA #1
- STA MP+2
- LDY #$A1
- LDA (CONFIG┬UF),Y
- TAY
- LDA #2
- LDX MP+1
- INX
- JSR INIT┬ANKS
-
- ;** RAM2-7 C128
- EXP╔NTERNAL128 = *
- LDA #2
- STA MP+2
- LDA #$00
- LDY #$04
- STA MP+0
- STY MP+1
- LDY #$A5
- LDA (CONFIG┬UF),Y
- LDX ACE╔NTERNAL┬ANKS
- JSR MIN
- STA ACE╔NTERNAL┬ANKS
- LDX #$05
- LDY #$FF
- JSR INIT┬ANKS
- JSR ADD╘O╞REE
- JSR DISPLAY╞REE
- RTS
-
- ;** RAM1-3 C64
- EXP╔NTERNAL64 = *
- LDA #1
- STA ACE╔NTERNAL┬ANKS
- JSR ADD╘O╞REE
- JSR DISPLAY╞REE
- RTS
-
- INTERNAL╬AME = *
- .ASC "INTERN"
-
- RESERVE╘╨┴ = *
- LDY #$A8
- BIT SYS╘YPE
- BMI +
- LDY #$C6
- + LDA (CONFIG┬UF),Y
- STA $40
- LDY #>ACE┴PP┴DDRESS
- LDA #$FE
- CPY $40
- BCS +
- - STA (RAM0╞REE═AP),Y
- INY
- CPY $40
- BCC -
- + SEC
- LDA $40
- SBC #>ACE┴PP┴DDRESS
- STA $40
- SEC
- LDA ACE╞REE═EMORY+1
- SBC $40
- STA ACE╞REE═EMORY+1
- LDA ACE╞REE═EMORY+2
- SBC #0
- STA ACE╞REE═EMORY+2
- LDA ACE╞REE═EMORY+3
- SBC #0
- STA ACE╞REE═EMORY+3
- RTS
-
- RESERVE╓IC80 = *
- BIT SYS╘YPE
- BVS +
- - RTS
- + LDY #$C0
- LDA (CONFIG┬UF),Y
- BPL -
- LDA #$FC
- LDY #$D8
- - STA (RAM0╞REE═AP),Y
- INY
- CPY #$FF
- BCC -
- SEC
- LDA ACE╞REE═EMORY+1
- SBC #$FF-$D8
- STA ACE╞REE═EMORY+1
- LDA ACE╞REE═EMORY+2
- SBC #0
- STA ACE╞REE═EMORY+2
- LDA ACE╞REE═EMORY+3
- SBC #0
- STA ACE╞REE═EMORY+3
- RTS
-
- FREE╥AM0┴FTER╦ERNEL = *
- ;** FREE END.KERNEL->ST.SHELL
- LDY ACE┼ND╨AGE
- CPY #>ACE┴PP┴DDRESS
- BCS +
- LDA #$00
- - STA (RAM0╞REE═AP),Y
- INY
- CPY #>ACE┴PP┴DDRESS
- BCC -
- + SEC
- LDA #>ACE┴PP┴DDRESS
- SBC ACE┼ND╨AGE
- STA $40
- CLC
- LDA $45
- ADC $40
- STA $45
- BCC +
- INC $46
- BNE +
- INC $47
- + RTS
-
- INSTALL╔NTERN╓ECTORS = *
- BIT SYS╘YPE
- BPL INSTALL╓ECTORS64
- LDA ACE╔NTERNAL┬ANKS
- CMP #2
- BCS +
- RTS
- + SEI
- LDA #2
- LDY #ACE═EM╔NTERNAL
- STA MP+2
- STY MP+3
- - LDA #$05
- LDY #$FF
- STA MP+0
- STY MP+1
- STA ZP+0
- STY ZP+1
- LDA #<251
- LDY #>251
- JSR STASH
- INC MP+2
- LDA MP+2
- CMP ACE╔NTERNAL┬ANKS
- BCC -
- CLI
- RTS
-
- INSTALL╓ECTORS64 = *
- ;XX COPY TO EXP BANKS
- RTS
-
- REU═EMORY = *
- LDA #ACE═EM╥┼╒
- LDX #255
- JSR TEST═EMORY╘YPE
- STA ACE╥EU┬ANKS
- TAX
- BNE +
- LDA ACE╥AMLINK╥EU┬ANKS
- BEQ +
- RTS
- + LDA #0
- STA $45
- LDA #<REU╬AME
- LDY #>REU╬AME
- JSR DISPLAY┴VAIL
- JSR RESET╞REE
- LDA #ACE═EM╥┼╒
- STA MP+3
- LDY #$A6
- BIT SYS╘YPE
- BMI +
- LDY #$C2
- + LDA (CONFIG┬UF),Y
- STA ACE╥EU╙TART
- STA ACE╥EU├UR
- LDY #$A7
- BIT SYS╘YPE
- BMI +
- LDY #$C3
- + LDA (CONFIG┬UF),Y
- LDX ACE╥EU┬ANKS
- JSR MIN
- STA ACE╥EU┬ANKS
- LDA #$00
- LDY #$FF
- LDX ACE╥EU╙TART
- STA MP+0
- STY MP+1
- STX MP+2
- LDA ACE╥EU┬ANKS
- LDX #$00
- LDY #$FF
- JSR INIT┬ANKS
- JSR ADD╘O╞REE
- JSR DISPLAY╞REE
- RTS
- REU╬AME = *
- .ASC "REU "
-
- RLREU═EMORY = *
- LDA ACE╥EU┬ANKS
- BEQ +
- LDA #0
- STA ACE╥AMLINK╥EU┬ANKS
- - RTS
- + LDX ACE╥AMLINK╥EU┬ANKS
- BEQ -
- LDA #0
- STA $45
- LDA #<RLREU╬AME
- LDY #>RLREU╬AME
- JSR DISPLAY┴VAIL
- JSR RESET╞REE
- LDA #ACE═EM╥╠╥┼╒
- STA MP+3
- LDY #$A6
- BIT SYS╘YPE
- BMI +
- LDY #$C2
- + LDA (CONFIG┬UF),Y
- STA ACE╥EU╙TART ;**SIC
- STA ACE╥AMLINK╥EU├UR
- LDY #$A7
- BIT SYS╘YPE
- BMI +
- LDY #$C3
- + LDA (CONFIG┬UF),Y
- LDX ACE╥AMLINK╥EU┬ANKS
- JSR MIN
- STA ACE╥AMLINK╥EU┬ANKS
- LDA #$00
- LDY #$FF
- LDX ACE╥AMLINK╥EU╙TART
- STA MP+0
- STY MP+1
- STX MP+2
- LDA ACE╥AMLINK╥EU┬ANKS
- LDX #$00
- LDY #$FF
- JSR INIT┬ANKS
- JSR ADD╘O╞REE
- JSR DISPLAY╞REE
- RTS
- RLREU╬AME = *
- .ASC "RL-REU"
-
- RL═EMORY = *
- LDX ACE╥AMLINK┬ANKS
- LDA #0
- STA $45
- LDA #<RL╬AME
- LDY #>RL╬AME
- JSR DISPLAY┴VAIL
- JSR RESET╞REE
- LDY #$81
- LDA (CONFIG┬UF),Y
- LDX ACE╥AMLINK┬ANKS
- JSR MIN
- STA ACE╥AMLINK┬ANKS
- LDA #ACE═EM╥╠
- STA MP+3
- LDA #$00
- LDY #$FF
- LDX #0
- STX ACE╥AMLINK├UR
- STA MP+0
- STY MP+1
- STX MP+2
- LDA ACE╥AMLINK┬ANKS
- LDX #$00
- LDY #$FF
- JSR INIT┬ANKS
- JSR ADD╘O╞REE
- JSR DISPLAY╞REE
- RTS
- RL╬AME = *
- .ASC "RL-RAM"
-
- TOTAL═EMORY = *
- LDX TOTAL┬ANKS
- LDA TOTAL┬ANKS+1
- STA $45
- LDA #<TOTAL╬AME
- LDY #>TOTAL╬AME
- JSR DISPLAY┴VAIL
- LDX #3
- - LDA ACE╞REE═EMORY,X
- STA $44,X
- DEX
- BPL -
- JSR DISPLAY╞REE
- LDA #13
- JSR CHROUT
- JSR RESERVE╘╨┴
- JSR RESERVE╓IC80
- RTS
- TOTAL╬AME = *
- .ASC "TOTAL "
- RTS
-
- END┬ANK = 10 ;(1)
- START╞REE = 11 ;(1)
- END╞REE = 12 ;(1)
-
- INIT┬ANKS = * ;( [MP]=FIRST╞REEMAP, .┴=END┬ANK+1, .╪=START╞REE, .┘=END╞REE+1 )
- STA END┬ANK
- STX START╞REE
- STY END╞REE
- LDA #<FREEMAP
- LDY #>FREEMAP
- STA ZP+0
- STY ZP+1
- LDX #0
- LDA #$FF
- - STA FREEMAP,X
- INX
- BNE -
- LDX START╞REE
- CPX END╞REE
- BCS FREE╬EXT┬ANK
- LDA #$00
- - STA FREEMAP,X
- INX
- CPX END╞REE
- BCC -
-
- FREE╬EXT┬ANK = *
- LDA MP+2
- CMP END┬ANK
- BCS +
- LDA #<256
- LDY #>256
- JSR STASH
- INC MP+2
- SEC
- LDA END╞REE
- SBC START╞REE
- CLC
- ADC $45
- STA $45
- BCC FREE╬EXT┬ANK
- INC $46
- BNE FREE╬EXT┬ANK
- INC $47
- JMP FREE╬EXT┬ANK
- + RTS
-
- MIN = * ;( .┴=NUM1, .╪=NUM2 ) : .┴=MIN
- STX $40
- CMP $40
- BCC +
- LDA $40
- + RTS
-
- CHROUT╙AVE .BUF 1
-
- CHROUT = *
- JSR $FFD2
- STY CHROUT╙AVE
- LDY #0
- STA (TITLE╨TR),Y
- INC TITLE╨TR+0
- BNE +
- INC TITLE╨TR+1
- + LDY CHROUT╙AVE
- CLC
- RTS
-
- BSS = *
- FREEMAP = BSS+0
- TITLE = FREEMAP+256
- CHAR4BIT┬UF = TITLE+512
- BSS┼ND = CHAR4BIT┬UF+1024
-