mirror of
https://github.com/AppleCommander/bastools.git
synced 2026-01-23 03:16:04 +00:00
6592 lines
194 KiB
Plaintext
Executable File
6592 lines
194 KiB
Plaintext
Executable File
; 6502bench SourceGen v1.10.0
|
||
P8_QUIT .eq $65 {const} ;(4:Type/1,Path,zz/1,zz)
|
||
P8_READ_BLOCK .eq $80 {const} ;(3:Unit/1,Buff,BlkNum)
|
||
P8_CREATE .eq $c0 {const} ;(7:pn,acc/1,type/1,aux,stt/1,cD,cT)
|
||
P8_DESTROY .eq $c1 {const} ;(1:pn)
|
||
P8_GET_FILE_INFO .eq $c4 {const} ;(10:pn,a/1,t/1,x,s/1,b,mDTcDT)
|
||
P8_ONLINE .eq $c5 {const} ;(2:UnitNum/1,Buff)
|
||
P8_SET_PREFIX .eq $c6 {const} ;(1:pn)
|
||
P8_OPEN .eq $c8 {const} ;(3:pn,ioBuff,Ref/1)
|
||
P8_NEWLINE .eq $c9 {const} ;(3:Ref/1,Mask/1,Char/1)
|
||
P8_READ .eq $ca {const} ;(4:Ref/1,Where,reqCount,xfrCount)
|
||
P8_WRITE .eq $cb {const} ;(4:Ref/1,Where,reqCount,xfrCount)
|
||
P8_CLOSE .eq $cc {const} ;(1:Ref/1)
|
||
P8_GET_EOF .eq $d1 {const} ;(2:Ref/1,Position/3)
|
||
MON_WNDTOP .eq $22 ;top of scroll window
|
||
MON_WNDBTM .eq $23 ;bottom of scroll window
|
||
MON_CH .eq $24 ;cursor horizontal displacement
|
||
MON_CV .eq $25 ;cursor vertical displacement
|
||
MON_PROMPT .eq $33 ;prompt character, used by GETLN
|
||
MON_CSWL .eq $36 ;character output hook (lo)
|
||
MON_CSWH .eq $37 ;character output hook (hi)
|
||
MON_A1L .eq $3c ;general purpose
|
||
MON_A1H .eq $3d ;general purpose
|
||
MON_A2L .eq $3e ;general purpose
|
||
MON_A2H .eq $3f ;general purpose
|
||
MON_A4L .eq $42 ;general purpose
|
||
MON_A4H .eq $43 ;general purpose
|
||
KEY_LEFT_ARROW .eq $88
|
||
KEY_DOWN_ARROW .eq $8a
|
||
KEY_UP_ARROW .eq $8b
|
||
KEY_CR .eq $8d
|
||
KEY_RIGHT_ARROW .eq $95
|
||
KEY_ESCAPE .eq $9b
|
||
CODEPTR .eq $ee {addr/2}
|
||
PTR .eq $fc {addr/2}
|
||
PTR2 .eq $fe {addr/2}
|
||
MON_SOFTEVEC .eq $03f2 {addr/2} ;address of RESET handler
|
||
MON_PWREDUP .eq $03f4 ;power-up RESET checksum
|
||
P8_MLI .eq $bf00 ;ProDOS MLI call entry point
|
||
P8_DEVADR01 .eq $bf10 {addr/32} ;device driver vectors
|
||
P8_DEVNUM .eq $bf30 ;most recent accessed device
|
||
P8_DEVCNT .eq $bf31 ;number of on-line devices (-1)
|
||
P8_DEVLST .eq $bf32 {addr/14} ;up to 14 units may be active
|
||
P8_MEMTABL .eq $bf58 {addr/24} ;memory map of lower 48K
|
||
P8_MACHID .eq $bf98 ;machine identification
|
||
P8_IBAKVER .eq $bffc ;undefined; reserved for future use
|
||
P8_IVERSION .eq $bffd ;version # of currently running Interpreter
|
||
KBD .eq $c000 ;R last key pressed + 128
|
||
KBDSTRB .eq $c010 ;RW keyboard strobe
|
||
SPKR .eq $c030 ;RW toggle speaker
|
||
MON_PRNTAX .eq $f941 ;print Acc/X-reg as 4 hex digits
|
||
MON_PRBLNK .eq $f948 ;print 3 spaces
|
||
MON_PRBL2 .eq $f94a ;print multiple spaces, count in X-reg
|
||
MON_TABV .eq $fb5b ;place cursor at line (A-reg) and column (CH)
|
||
MON_ADVANCE .eq $fbf4 ;move cursor right
|
||
MON_BS .eq $fc10 ;move cursor left
|
||
MON_CLREOP .eq $fc42 ;clear screen from cursor to end of page
|
||
MON_HOME .eq $fc58 ;clear screen and reset text output to top-left
|
||
MON_CLREOL .eq $fc9c ;clear to end of line
|
||
MON_RDKEY .eq $fd0c ;read key from input device via $38-39
|
||
MON_KEYIN .eq $fd1b ;get next key input from keyboard hardware
|
||
MON_CROUT .eq $fd8e ;print a carriage return
|
||
MON_PRBYTE .eq $fdda ;print Acc as two-digit hex number
|
||
MON_COUT .eq $fded ;print Acc to output device via $36-37
|
||
MON_MOVE .eq $fe2c ;move bytes from A1 to A4 until A1=A2
|
||
MON_SETKBD .eq $fe89 ;reset char input handler to ROM
|
||
MON_SETVID .eq $fe93 ;reset char output handler to ROM
|
||
MON_RESTORE .eq $ff3f ;restore 6502 registers from $45-48
|
||
MON_SAVE .eq $ff4a ;save 6502 registers to $45-49
|
||
|
||
.addrs $2000
|
||
jmp PRG_COPY
|
||
|
||
; I think this is from the old security check. There was a writeup somewhere
|
||
; that the entirety of the check was to read the end of the disk, and it should
|
||
; fail because the track was never written (or some such). This appears to be
|
||
; setup to read the last block of the disk. Looks like the NOP's were part of
|
||
; the first round of deprotection and it finally just became a JMP at the start
|
||
; of the app.
|
||
LEFTOVER_SECURITY_CHECK? .junk 157
|
||
|
||
.addrs $0e00
|
||
PGM_QUIT lda #$00
|
||
sta MON_WNDTOP
|
||
lda #$18
|
||
sta MON_WNDBTM
|
||
jsr MON_HOME
|
||
dec MON_PWREDUP
|
||
lda #$00
|
||
sta MON_A1L
|
||
lda #$0f
|
||
sta MON_A1H
|
||
lda #$00
|
||
sta L0F00
|
||
lda #$01
|
||
sta MON_A4L
|
||
lda #$0f
|
||
sta MON_A4H
|
||
lda #$6c
|
||
sta MON_A2L
|
||
lda #$50
|
||
sta MON_A2H
|
||
ldy #$00
|
||
jsr MON_MOVE
|
||
jsr P8_MLI
|
||
|
||
.dd1 P8_QUIT
|
||
.dd2 P8_QUIT_PARAMS
|
||
.dd1 $00
|
||
.dd1 $00
|
||
.dd1 $00
|
||
P8_QUIT_PARAMS .dd1 4
|
||
.dd1 $00
|
||
.dd2 $0000
|
||
.dd1 $00
|
||
.dd2 $0000
|
||
.dd1 $00
|
||
.dd1 $00
|
||
.dd1 $00
|
||
.str ↑“C _ _ H 1 EOA R 0 ”
|
||
.dd1 $ff
|
||
.str ↑“_RP _ _ ”
|
||
.dd1 $80
|
||
.str ↑“ShPC* s m”
|
||
.dd1 $90
|
||
.str ↑“ . " __R___ _ 0 D R E n_0t * _ _ /”
|
||
+ “ Y H 0* G”
|
||
.dd1 $80
|
||
.str ↑“" C _ _ 0 "”
|
||
.dd1 $ff
|
||
.dd1 $a0
|
||
.dd1 $df
|
||
.dd1 $80
|
||
.str ↑“ _ 0 i”
|
||
.dd1 $ff
|
||
.str ↑“AiEC* ”,$8d,“ _ " ”
|
||
.dd1 $97
|
||
.dd1 $a0
|
||
.dd1 $a0
|
||
.dd1 $a0
|
||
L0F00 .dd1 3
|
||
L0F01 .dd1 $60
|
||
L0F02 .dd2 $0a00
|
||
L0F04 .dd2 $0000
|
||
L0F06 .dd1 3
|
||
L0F07 .dd2 PATH_LEN
|
||
L0F09 .dd2 $0000
|
||
L0F0B .dd1 0
|
||
CLOSE_PARAMS .dd1 1
|
||
PD_CC_REFNUM .dd1 0
|
||
L0F0E .dd1 2
|
||
L0F0F .dd1 $00
|
||
L0F10 .dd2 $0800
|
||
L0F12 .dd1 1
|
||
L0F13 .dd2 PATH_LEN
|
||
L0F15 .dd1 2
|
||
L0F16 .dd1 $00
|
||
L0F17 .dd2 $0800
|
||
GET_FILE_INFO_PARAMS .dd1 $0a
|
||
PD_C4_PATH_ADDR .dd2 PATH_LEN
|
||
PD_C4_ACCESS .dd1 $00
|
||
PD_C4_FILETYPE .dd1 $00
|
||
PD_C4_AUX_FILETYPE .dd2 $0000
|
||
PD_C4_STORAGE .dd1 $00
|
||
PD_C4_BLOCKS .dd2 $0000
|
||
PD_C4_MOD_DATE .dd2 $0000
|
||
PD_C4_MOD_TIME .dd2 $0000
|
||
PD_C4_CREAT_DATE .dd2 $0000
|
||
PD_C4_CREAT_TIME .dd2 $0000
|
||
L0F2B .dd1 1
|
||
.dd2 L1C00
|
||
L0F2E .dd1 7
|
||
.dd2 L1C00
|
||
.dd1 $c3
|
||
.dd1 $06
|
||
.dd2 $0900
|
||
.dd1 $01
|
||
.dd2 $0000
|
||
.dd2 $0000
|
||
L0F3A .dd1 4
|
||
L0F3B .dd1 0
|
||
.dd2 $0800
|
||
L0F3E .dd2 $0000
|
||
.dd2 $0000
|
||
L0F42 .dd1 4
|
||
L0F43 .dd1 0
|
||
L0F44 .dd2 $0800
|
||
L0F46 .dd2 $0000
|
||
L0F48 .dd2 $0000
|
||
L0F4A .dd1 2
|
||
L0F4B .dd1 0
|
||
L0F4C .dd3 $000000
|
||
L0F4F .dd1 3
|
||
L0F50 .dd1 0
|
||
.dd1 $7f
|
||
.dd1 $0d
|
||
TENS_LOW .bulk $01,$0a,$64,$e8,$10
|
||
TENS_HIGH .bulk $00,$00,$00,$03,$27
|
||
L0F5D .dd1 $00
|
||
.dd1 $07
|
||
.dd1 $06
|
||
.dd1 $06
|
||
.dd1 $05
|
||
.dd1 $05
|
||
.dd1 $04
|
||
.dd1 $04
|
||
.dd1 $03
|
||
.dd1 $03
|
||
.dd1 $02
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $01
|
||
.dd1 $00
|
||
.dd1 $07
|
||
L0F6D .dd1 $01
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $01
|
||
.dd1 $02
|
||
.dd1 $02
|
||
DOS_FILETYPE_LOW .str ↑“TIA B S”
|
||
DOS_FILETYPE_HIGH .str ↑“ RA B”
|
||
L0F8B .dd1 $a2
|
||
L0F8C .dd1 $4f
|
||
.dd1 $05
|
||
.dd1 $50
|
||
.dd1 $18
|
||
.dd1 $50
|
||
.dd1 $26
|
||
.dd1 $50
|
||
L0F93 .dd1 $ff
|
||
L0F94 .dd1 $4e
|
||
.dd1 $0d
|
||
.dd1 $4f
|
||
.dd1 $1b
|
||
.dd1 $4f
|
||
.dd1 $3f
|
||
.dd1 $4f
|
||
L0F9B .dd1 $bc
|
||
L0F9C .dd1 $2c
|
||
.dd1 $30
|
||
.dd1 $3b
|
||
.dd1 $f4
|
||
.dd1 $28
|
||
.dd1 $cd
|
||
.dd1 $3a
|
||
.dd1 $90
|
||
.dd1 $33
|
||
.dd1 $ac
|
||
.dd1 $45
|
||
.dd1 $68
|
||
.dd1 $36
|
||
.dd1 $0f
|
||
.dd1 $3a
|
||
PRODOS_FILE_TYPES1 .str ↑“$00 BAD PCD PTX TXT PDA BIN FNT FOT BA3 DA3 WPF SOS $0D $0E D”
|
||
+ “IR RPD RPI h 2 ”
|
||
PRODOS_FILE_TYPES2 .str ↑“CMD $F1 $F2 $F3 $F4 $F5 $F6 $F7 $F8 $F9 INT IVR BAS VAR REL S”
|
||
+ “YS ”
|
||
DEFAULT_VALUES .dd1 $b6 ;These defaults are copied to $1050
|
||
.dd1 $b1
|
||
.dd1 $00
|
||
.dd1 $b0
|
||
.dd1 $b1
|
||
.dd1 $c2
|
||
.dd1 $ff
|
||
.dd1 $00
|
||
.dd1 $00
|
||
.dd1 $04
|
||
.dd1 $89
|
||
.dd1 $b8
|
||
.dd1 $b0
|
||
.dd1 $ce
|
||
DEFAULTS_LENGTH .dd1 $0d
|
||
LOWER_MASK? .dd1 $00
|
||
L1050 .dd1 $00
|
||
L1051 .dd1 $00
|
||
L1052 .dd1 $00
|
||
L1053 .dd1 $00
|
||
L1054 .dd1 $00
|
||
L1055 .dd1 $c2
|
||
KP_VER_FLAG .dd1 $ff ;$80+ = Both, 0=4.0, !0=5.0
|
||
L1057 .dd1 $00
|
||
PREVENT_DOUBLE? .dd1 $00 ;This appears to be to prevent double run at $3BBC
|
||
L1059 .dd1 $00
|
||
L105A .dd1 $cf
|
||
L105B .dd1 $a0
|
||
L105C .dd1 $a0
|
||
L105D .dd1 $d3
|
||
L105E .str ↑“ ”,$87,“ ”
|
||
.dd1 $81
|
||
.str ↑“" _7_ _”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $df
|
||
.dd1 $80
|
||
.str ↑“ U ”
|
||
L107D .dd1 $2d
|
||
FLAG_SUBMIT .dd1 $00
|
||
L107F .dd1 $00
|
||
.dd1 $00
|
||
L1081 .dd1 $00
|
||
L1082 .dd1 $00
|
||
L1083 .dd1 $00
|
||
L1084 .dd1 $00
|
||
.dd1 $00
|
||
L1086 .dd1 $00
|
||
L1087 .dd1 $00
|
||
L1088 .dd1 $09
|
||
L1089 .str ↑“CON DOS DRI END FIL FOR P-C P-F P-S PRE QUI SLO ”
|
||
L10B9 .dd1 $30
|
||
MONTHS .str ↑“JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ”
|
||
L10EA .dd1 $00
|
||
L10EB .dd1 $c0
|
||
HIMEM1? .dd1 $00
|
||
HIMEM2? .dd1 $00
|
||
HIMEM3? .dd1 $00
|
||
HIMEM4? .dd1 $00
|
||
L10F0 .dd1 $00
|
||
L10F1 .dd1 $8c
|
||
L10F2 .dstr $14,“ ”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “P”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr $01
|
||
.dstr “ ”
|
||
.dstr “e”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
MENU_GEN_CHKCODE .dstr “Generate checkcode.”
|
||
MENU_SET_DEFAULTS .dstr “Set defaults.”
|
||
MENU_FOOTER1 .dstr “Use arrow keys to position the pointer”
|
||
MENU_FOOTER2 .dstr “arrow. Press <RETURN> to select.”
|
||
TXT_VIEW_DEFAULTS .dstr “View defaults.”
|
||
TXT_SET_OUT_LOC .dstr “Set output location.”
|
||
TXT_SET_LP_DEFAULTS .dstr “Set printer defaults.”
|
||
TXT_SET_DOS_SD .dstr “Set DOS 3.3 slot and drive.”
|
||
TXT_SET_OUT_FMT .dstr “Set output format.”
|
||
TXT_SAVE_DEFAULTS .dstr “Save defaults.”
|
||
TXT_RESET_DEFAULTS .dstr “Reset defaults.”
|
||
TXT_SLOT .dstr “Slot: ”
|
||
ERR_INV_SLOT .dstr “Invalid slot.”
|
||
.dstr “ ”
|
||
.dstr “T”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
ERR_INV_DRIVE .dstr “Invalid drive.”
|
||
TXT_KEY_PERFECT .dstr “KEY PERFECT”
|
||
TXT_VERSION_50 .dstr “(Version 5.0)”
|
||
TXT_BY .dstr “by”
|
||
TXT_AUTHOR .dstr “Ken McCandless”
|
||
TXT_COPYRIGHT .dstr “(C) Copyright 1985”
|
||
TXT_LINE_NO .dstr “LINE#”
|
||
TXT_MICROSPARC .dstr “MicroSPARC, Inc.”
|
||
TXT_IS_THIS_CORR .dstr “Is this correct (y/n)?”
|
||
TXT_ACCPT_LP_CTRL .dstr “Accept printer control (y/n)?”
|
||
TXT_ALRDY_DISK_SLOT .dstr “Already identified as a disk slot.”
|
||
TXT_OUTPUT_LP .dstr “Output to the printer (y/n)?”
|
||
TXT_INP_LP_CTRL .dstr “Input printer control info, if any:”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “"”
|
||
.dstr “_”
|
||
.dstr “N”
|
||
.dstr $7f
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
TXT_RET_CONTINUE .dstr “Press <RETURN> to continue.”
|
||
TXT_RUN_ON .dstr “RUN ON”
|
||
TXT_DOS33 .dstr “DOS 3.3”
|
||
TXT_SPACE .dstr “ Space ”
|
||
TXT_13_DASHES .dstr “-------------”
|
||
TXT_CONTROL .dstr “ Control-”
|
||
TXT_ON .dstr “On”
|
||
TXT_EQUALS .dstr “=======================================”
|
||
TXT_8_DASHES .dstr “--------”
|
||
TXT_CODE_40 .dstr “CODE-4.0”
|
||
TXT_ADDR_NO .dstr “ADDR#”
|
||
TXT_DASH .dstr “ - ”
|
||
TXT_ESCAPE .dstr “ Escape ”
|
||
TXT_PRINTER .dstr “Printer: ”
|
||
TXT_OFF .dstr “Off”
|
||
TXT_LP_CONTROL .dstr “Printer control: ”
|
||
TXT_RETURN .dstr “ Return ”
|
||
ERR_INV_FILETYPE .dstr “File type not implemented.”
|
||
TXT_ADD_PREFIX .dstr “Add more to prefix (y/n)?”
|
||
TXT_BOTH .dstr “Both”
|
||
TXT_FOR_DOS_ONLY .dstr “(For DOS 3.3 only)”
|
||
.dstr “p”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
TXT_INSERT_DISK .dstr “Insert the disk containing the program.”
|
||
TXT_FILENAME .dstr “Filename:”
|
||
TXT_Q_FOR_CAT .dstr “Press ? for catalog.”
|
||
ERR_SYSTEM_ERR .dstr “System error - restarting.”
|
||
ERR_IO .dstr “I/O error.”
|
||
TXT_NO_DEV_CONN .dstr “No device connected.”
|
||
ERR_DISK_SWITCH .dstr “Disk switched - file open on other disk.”
|
||
ERR_INV_PNAME .dstr “Invalid pathname.”
|
||
ERR_DIR_NOT_FOUND .dstr “Directory not found.”
|
||
ERR_FILE_NOT_FOUND .dstr “File not found.”
|
||
ERR_UNSUPP_FILETYPE .dstr “Unsupported file type.”
|
||
ERR_VOLUME_NOT_FOUND .dstr “Volume not found.”
|
||
.dstr “l”
|
||
ERR_CANNOT_READ .dstr “Access error - file not read enabled.”
|
||
ERR_BAD_DIR .dstr “Directory structure damaged.”
|
||
ERR_FILE_DAMAGED .dstr “File structure damaged.”
|
||
TXT_PGM_TOTAL .dstr “ = PROGRAM TOTAL = ”
|
||
TXT_CODE_50 .dstr “CODE-5.0”
|
||
TXT_DRIVE .dstr “Drive: ”
|
||
ERR_NOT_PRODOS_DISK .dstr “Not a ProDOS disk.”
|
||
ERR_NOT_DOS33 .dstr “Not a DOS 3.3 disk.”
|
||
TXT_DIR_FULL .dstr “Volume directory full.”
|
||
TXT_VOL_FULL .dstr “Volume full.”
|
||
ERR_VCB_FULL .dstr “Volume control block full.”
|
||
ERR_BAD_BUFFER .dstr “Bad buffer address.”
|
||
TXT_ABORTING .dstr “Aborting . . .”
|
||
.dstr $7f
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
ERR_BAD_PARAM_COUNT .dstr “Bad system call parameter count.”
|
||
ERR_INV_REF_NUM .dstr “Invalid reference number.”
|
||
ERR_BAD_FILE_FMT .dstr “Bad file format.”
|
||
ERR_EOF .dstr “End of file encountered.”
|
||
ERR_POS_RANGE .dstr “Position out of range.”
|
||
ERR_INV_CALL_PARAM .dstr “Invalid system call parameter.”
|
||
L1695 .dstr “/”
|
||
.dstr “K”
|
||
.dstr “E”
|
||
.dstr “Y”
|
||
.dstr “P”
|
||
.dstr “E”
|
||
.dstr “R”
|
||
.dstr “F”
|
||
.dstr “E”
|
||
.dstr “C”
|
||
.dstr “T”
|
||
.dstr “/”
|
||
.dstr “D”
|
||
.dstr “E”
|
||
.dstr “F”
|
||
.dstr “A”
|
||
.dstr “U”
|
||
.dstr “L”
|
||
.dstr “T”
|
||
.dstr “S”
|
||
TXT_PRESS_RET .dstr “Press <RETURN> for more; anything else if done.”
|
||
ERR_INSUFFMEM .dstr “Insufficient memory available.”
|
||
TXT_FORMAT .dstr “Format: ”
|
||
.dstr “ ”
|
||
ERR_DSK_WR_PROT .dstr “Disk write protected.”
|
||
TXT_V5 .dstr “Version 5.0”
|
||
TXT_V4 .dstr “Version 4.0”
|
||
TXT_SELECT_54B .dstr “Input 5, 4 OR B:”
|
||
TXT_DASHES .dstr “--------”
|
||
TXT_NO_DATE .dstr “<NO DATE>”
|
||
TXT_AND .dstr “ and ”
|
||
TXT_ENTER_PATHNAME .dstr “Enter pathname or prefix:”
|
||
MENU_QUIT .dstr “Quit.”
|
||
TXT_KP_50 .dstr “KEY PERFECT 5.0”
|
||
TXT_ESC_MAIN_MENU .dstr “ESC -> Main menu”
|
||
.dstr “For the SUBMIT file input:”
|
||
TXT_SUBMIT_CMDS .dstr “SUBMIT file commands:”
|
||
TXT_ACT_SUBMIT .dstr “Activate SUBMIT (y/n)? ”
|
||
ERR_UNK_SUBMIT .dstr “Unknown SUBMIT command.”
|
||
TXT_MAIN_MENU .dstr “Main Menu”
|
||
.dstr “0”
|
||
.dstr “N”
|
||
.dstr “i”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
ERR_SD_NOT_DEFINED .dstr “Both slot and drive not defined.”
|
||
ERR_FATAL .dstr “Fatal error-Press <RETURN> to restart.”
|
||
.dstr “Defaults Menu”
|
||
TXT_GET_DFLTS_DISK .dstr “Get defaults from disk.”
|
||
TXT_GET_SYS_DFLTS .dstr “Get system internal defaults.”
|
||
TXT_EXACT_KEYS .dstr “Press the exact keystrokes required”
|
||
TXT_EXACT_KEYS2 .dstr “by the printer (^ = end).”
|
||
TXT_HAS_LOWERCASE .dstr “Is lower case available (y/n)? ”
|
||
ERR_VOL_NOT_FOUND .dstr “Volume not found.”
|
||
MENU_OS_DOS33 .dstr “DOS 3.3”
|
||
.dstr “C”
|
||
.dstr “*”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
TXT_ESC_PREV_MENU .dstr “ESC -> Prev. menu”
|
||
TXT_DOS_SELECTION .dstr “DOS Selection Menu”
|
||
MENU_OS_PRODOS .dstr “ProDOS”
|
||
TXT_REINSERT_KP_DISK .dstr “Reinsert the KEY PERFECT disk.”
|
||
TXT_LINES_CTRLCODES .dstr “Lines with control codes:”
|
||
TXT_CNTRL_CODE_LIST .dstr “Control code list: ”
|
||
TXT_ASOFT_CNTRL_LIST .dstr “Set APPLESOFT control code list.”
|
||
TXT_LIST_CNTRL .dstr “Produce a list of control codes”
|
||
TXT_ASOFT_PGMS .dstr “in APPLESOFT programs (y/n)? ”
|
||
L19CF .dstr “Save defaults (y/n)? ”
|
||
TXT_VOLS_ONLINE .dstr “Press ? for volumes on line.”
|
||
TXT_CURRENT .dstr “<- Current”
|
||
TXT_ESC_RETRY .dstr “ESC -> retry”
|
||
ERR_PFX_TOO_LONG .dstr “Prefix too long ( > 64 characters).”
|
||
ERR_NAME_TOO_LONG .dstr “Filename too long ( > 30 characters).”
|
||
ERR_ENTRY_TOO_LONG .dstr “Filename entry too long ( > 64 chars).”
|
||
TXT_ADD_DIR_TO_PFX .dstr “Add this directory to prefix (y/n)? ”
|
||
ERR_CANNOT_ADD_PFX .dstr “Can not add to prefix ( > 64 chars).”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “e”
|
||
.dstr “M”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “;”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “1”
|
||
.dstr “r”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “t”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “i”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “R”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “_”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “S”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “U”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “1”
|
||
.dstr “ ”
|
||
.dstr “ ”
|
||
.dstr “0”
|
||
.dstr “ ”
|
||
.dstr “$”
|
||
OS_SELECTION .dd1 $00 ;0=ProDOS, 1=DOS 3.3
|
||
L1B01 .dd1 $00
|
||
L1B02 .dd1 $00
|
||
L1B03 .dd1 $00
|
||
L1B04 .dd1 $00
|
||
L1B05 .dd1 $00
|
||
L1B06 .dd1 $00
|
||
L1B07 .dd1 $00
|
||
L1B08 .dd1 $00
|
||
L1B09 .dd1 $00
|
||
L1B0A .dd1 $00
|
||
L1B0B .dd1 $00
|
||
L1B0C .dd1 $00
|
||
L1B0D .dd1 $00
|
||
L1B0E .dd1 $00
|
||
MENU_SELECTION .dd1 $00
|
||
PRDEC_PADDING .dd1 $00
|
||
PRDEC_NUMBER_HIGH .dd1 $00
|
||
PRDEC_NUMBER_LOW .dd1 $00
|
||
PRDEC_NUM_DIGITS .dd1 $00
|
||
PRDEC_CURR_DIGIT .dd1 $00
|
||
PATH_LEN .dd1 $00
|
||
PATH .dd1 $00
|
||
L1B17 .dd1 $80
|
||
.dd1 $df
|
||
.dd1 $a0
|
||
.dd1 $80
|
||
.str ↑“ _ _ P ”
|
||
.dd1 $80
|
||
.str ↑“Se U9 ”
|
||
.dd1 $ff
|
||
.dd1 $a0
|
||
.dd1 $ec
|
||
.dd1 $ff
|
||
.str ↑“ * B”
|
||
.dd1 $80
|
||
.str ↑“ _ _0 _ ”
|
||
.dd1 $80
|
||
.str ↑“ p a 0 i”
|
||
.dd1 $ff
|
||
.str ↑“ 0 * f " CD_ _ 2 _ 1RDI _ 0_"”
|
||
.dd1 $ff
|
||
.dd1 $a0
|
||
.dd1 $a0
|
||
.dd1 $80
|
||
.str ↑“ _ _”
|
||
L1B96 .dd1 $00
|
||
L1B97 .dd1 $00
|
||
L1B98 .dd1 $00
|
||
CHAR_READ .dd1 $00
|
||
LINE_BYTES_READ .dd1 $00
|
||
LINE_COUNT .dd1 $00
|
||
PGM_END .dd2 $0000
|
||
L1B9E .dd1 $00
|
||
FLAG_BASIC_BINARY .dd1 $00 ;0=BASIC, 1=Binary (aka print line numbers vs addresses)
|
||
CHKSUM_V4_PGM .bulk $00,$00,$00
|
||
L1BA3 .dd1 $00
|
||
CHKSUM_V4_LINE .bulk $00,$00,$00
|
||
NEXT_LINE_PTR .dd2 $0000
|
||
START_LINE_NBR .dd2 $0000
|
||
END_LINE_NBR .dd2 $0000
|
||
L1BAD .dd1 $00
|
||
SOME_BASIC_ADDR? .dd2 $0000
|
||
FLAG_ALLOW_ONLINE .dd1 $00
|
||
L1BB1 .dd1 $00
|
||
L1BB2 .dd1 $00
|
||
L1BB3 .dd1 $00
|
||
L1BB4 .dd1 $00
|
||
L1BB5 .dd1 $00
|
||
L1BB6 .dd1 $00
|
||
L1BB7 .dd1 $00
|
||
CSUM_V5_1 .dd1 $00
|
||
CSUM_V5_2 .dd1 $00
|
||
CSUM_V5_3 .dd1 $00
|
||
CSUM_V5_4 .dd1 $00
|
||
CSUM_V5_5 .dd1 $00
|
||
CSUM_V5_6 .dd1 $00
|
||
CSUM_V5_7 .dd1 $00
|
||
CSUM_V5_8 .dd1 $00
|
||
CSUM_V5_9 .dd1 $00
|
||
L1BC1 .dd1 $00
|
||
L1BC2 .dd1 $00
|
||
L1BC3 .dd1 $00
|
||
L1BC4 .dd1 $00
|
||
L1BC5 .dd1 $00
|
||
L1BC6 .dd1 $00
|
||
BASIC_START_ADDR .dd2 $0000
|
||
L1BC9 .dd1 $00
|
||
L1BCA .dd1 $00
|
||
L1BCB .dd1 $00
|
||
L1BCC .dd1 $00
|
||
SOME_COUNTER? .dd1 $00
|
||
L1BCE .dd1 $00
|
||
L1BCF .dd1 $00
|
||
.str ↑“ ”,$87,“_D”
|
||
.dd1 $81
|
||
.str ↑“ 1 _ _ ”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $ef
|
||
.dd1 $80
|
||
.str ↑“ a e 0 M . o ”
|
||
L1C00 .dd1 $00
|
||
L1C01 .str ↑“ ; 5r t i_ d _ _ U 1 F ”,$8d,“R _”
|
||
+ “ _ " / _ 2 ”
|
||
.dd1 $80
|
||
.dd1 $ae
|
||
.dd1 $ef
|
||
.dd1 $ff
|
||
.str ↑“O. U 0 0_ ”
|
||
.dd1 $80
|
||
.str ↑“ CP _ _ ”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $e8
|
||
.dd1 $82
|
||
.str ↑“ * m”
|
||
TEMP_CHAR2 .dd1 $00
|
||
ALLOW_ESC .dd1 $00
|
||
L1C83 .dd1 $00
|
||
L1C84 .dd1 $00
|
||
L1C85 .dd1 $00
|
||
L1C86 .dd1 $00
|
||
L1C87 .dd1 $00
|
||
TOKEN_FLAG .dd1 $00 ;1=REM, 2=?
|
||
L1C89 .dd1 $00
|
||
TEMP_YREG .dd1 $00
|
||
TEMP_XREG .dd1 $00
|
||
TEMP_DATA .dd1 $00
|
||
.str ↑“ _ _ s E 5 U d_ __ 0_ _ 1 S FA.ONA”
|
||
+ “ _ ”,$87,“_D0 2 _ ”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $ef
|
||
.dd1 $80
|
||
.str ↑“X. U 0 ”
|
||
.dd1 $ff
|
||
.str ↑“ 0 ”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $d2
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $a0
|
||
KEY_TABLE_1 .bulk $00,$96,$2c,$ba,$19,$8f,$35,$a3,$32,$a4,$1e,$88,$2b,$bd,$07,$91
|
||
+ $64,$f2,$48,$de,$7d,$eb,$51,$c7,$56,$c0,$7a,$ec,$4f,$d9,$63,$f5
|
||
+ $c8,$5e,$e4,$72,$d1,$47,$fd,$6b,$fa,$6c,$d6,$40,$e3,$75,$cf,$59
|
||
+ $ac,$3a,$80,$16,$b5,$23,$99,$0f,$9e,$08,$b2,$24,$87,$11,$ab,$3d
|
||
+ $90,$06,$bc,$2a,$89,$1f,$a5,$33,$a2,$34,$8e,$18,$bb,$2d,$97,$01
|
||
+ $f4,$62,$d8,$4e,$ed,$7b,$c1,$57,$c6,$50,$ea,$7c,$df,$49,$f3,$65
|
||
+ $58,$ce,$74,$e2,$41,$d7,$6d,$fb,$6a,$fc,$46,$d0,$73,$e5,$5f,$c9
|
||
+ $3c,$aa,$10,$86,$25,$b3,$09,$9f,$0e,$98,$22,$b4,$17,$81,$3b,$ad
|
||
+ $20,$b6,$0c,$9a,$39,$af,$15,$83,$12,$84,$3e,$a8,$0b,$9d,$27,$b1
|
||
+ $44,$d2,$68,$fe,$5d,$cb,$71,$e7,$76,$e0,$5a,$cc,$6f,$f9,$43,$d5
|
||
+ $e8,$7e,$c4,$52,$f1,$67,$dd,$4b,$da,$4c,$f6,$60,$c3,$55,$ef,$79
|
||
+ $8c,$1a,$a0,$36,$95,$03,$b9,$2f,$be,$28,$92,$04,$a7,$31,$8b,$1d
|
||
+ $b0,$26,$9c,$0a,$a9,$3f,$85,$13,$82,$14,$ae,$38,$9b,$0d,$b7,$21
|
||
+ $d4,$42,$f8,$6e,$cd,$5b,$e1,$77,$e6,$70,$ca,$5c,$ff,$69,$d3,$45
|
||
+ $78,$ee,$54,$c2,$61,$f7,$4d,$db,$4a,$dc,$66,$f0,$53,$c5,$7f,$e9
|
||
+ $1c,$8a,$30,$a6,$05,$93,$29,$bf,$2e,$b8,$02,$94,$37,$a1,$1b,$8d
|
||
KEY_TABLE_2 .bulk $00,$30,$61,$51,$c4,$f4,$a5,$95,$88,$b8,$e9,$d9,$4c,$7c,$2d,$1d
|
||
+ $10,$20,$71,$41,$d4,$e4,$b5,$85,$98,$a8,$f9,$d9,$5c,$6c,$3d,$0d
|
||
+ $20,$10,$41,$71,$e4,$d4,$85,$b5,$a8,$98,$c9,$f9,$6c,$5c,$0d,$3d
|
||
+ $30,$00,$51,$61,$f4,$c4,$95,$a5,$b8,$88,$d9,$e9,$7c,$4c,$1d,$2d
|
||
+ $41,$71,$20,$10,$85,$b5,$e4,$d4,$c9,$f9,$a8,$98,$0d,$3d,$6c,$5c
|
||
+ $51,$61,$30,$00,$95,$a5,$f4,$c4,$d9,$e9,$b8,$88,$1d,$2d,$7c,$4c
|
||
+ $61,$51,$00,$30,$a5,$95,$c4,$f4,$e9,$d9,$88,$b8,$2d,$1d,$4c,$7c
|
||
+ $71,$41,$10,$20,$b5,$85,$d4,$e4,$f9,$c9,$98,$a8,$3d,$0d,$5c,$6c
|
||
+ $83,$b3,$e2,$d2,$47,$77,$26,$16,$0b,$3b,$6a,$5a,$cf,$ff,$ae,$9e
|
||
+ $93,$a3,$f2,$c2,$57,$67,$36,$06,$1b,$2b,$7a,$4a,$df,$ef,$be,$8e
|
||
+ $a3,$93,$c2,$f2,$67,$57,$06,$36,$2b,$1b,$4a,$7a,$ef,$df,$8e,$be
|
||
+ $b3,$83,$d2,$e2,$77,$47,$16,$26,$3b,$0b,$5a,$6a,$ff,$cf,$9e,$ae
|
||
+ $c2,$f2,$a3,$93,$06,$36,$67,$57,$4a,$7a,$2b,$1b,$8e,$be,$ef,$df
|
||
+ $d2,$e2,$b3,$83,$16,$26,$77,$47,$5a,$6a,$3b,$0b,$9e,$ae,$ff,$cf
|
||
+ $e2,$d2,$83,$b3,$26,$16,$47,$77,$6a,$5a,$0b,$3b,$ae,$9e,$cf,$ff
|
||
+ $f2,$c2,$93,$a3,$36,$06,$57,$67,$7a,$4a,$1b,$2b,$be,$8e,$df,$ef
|
||
KEY_TABLE_3 .bulk $00,$07,$0e,$09,$6d,$6a,$63,$64,$db,$dc,$d5,$d2,$b6,$b1,$b8,$bf
|
||
+ $b7,$b0,$b9,$be,$da,$dd,$d4,$d3,$6c,$6b,$62,$65,$01,$06,$0f,$08
|
||
+ $6e,$69,$60,$67,$03,$04,$0d,$0a,$b5,$b2,$bb,$bc,$d8,$df,$d6,$d1
|
||
+ $d9,$de,$d7,$d0,$b4,$b3,$ba,$bd,$02,$05,$0c,$0b,$6f,$68,$61,$66
|
||
+ $dc,$db,$d2,$d5,$b1,$b6,$bf,$b8,$07,$00,$09,$0e,$6a,$6d,$64,$63
|
||
+ $6b,$6c,$65,$62,$06,$01,$08,$0f,$b0,$b7,$be,$b9,$dd,$da,$d3,$d4
|
||
+ $b2,$b5,$bc,$bb,$df,$d8,$d1,$d6,$69,$6e,$67,$60,$04,$03,$0a,$0d
|
||
+ $05,$02,$0b,$0c,$68,$6f,$66,$61,$de,$d9,$d0,$d7,$b3,$b4,$bd,$ba
|
||
+ $b8,$bf,$b6,$b1,$d5,$d2,$db,$dc,$63,$64,$6d,$6a,$0e,$09,$00,$07
|
||
+ $0f,$08,$01,$06,$62,$65,$6c,$6b,$d4,$d3,$da,$dd,$b9,$be,$b7,$b0
|
||
+ $d6,$d1,$d8,$df,$bb,$bc,$b5,$b2,$0d,$0a,$03,$04,$60,$67,$6e,$69
|
||
+ $61,$66,$6f,$68,$0c,$0b,$02,$05,$ba,$bd,$b4,$b3,$d7,$d0,$d9,$de
|
||
+ $64,$63,$6a,$6d,$09,$0e,$07,$00,$bf,$b8,$b1,$b6,$d2,$d5,$dc,$db
|
||
+ $d3,$d4,$dd,$da,$be,$b9,$b0,$b7,$08,$0f,$06,$01,$65,$62,$6b,$6c
|
||
+ $0a,$0d,$04,$03,$67,$60,$69,$6e,$d1,$d6,$df,$d8,$bc,$bb,$b2,$b5
|
||
+ $bd,$ba,$b3,$b4,$d0,$d7,$de,$d9,$66,$61,$68,$6f,$0b,$0c,$05,$02
|
||
KEY_TABLE_4 .bulk $00,$77,$ee,$99,$07,$70,$e9,$9e,$0e,$79,$e0,$97,$09,$7e,$e7,$90
|
||
+ $1d,$6a,$f3,$84,$1a,$6d,$f4,$83,$13,$64,$fd,$8a,$14,$63,$fa,$8d
|
||
+ $3b,$4c,$d5,$a2,$3c,$4b,$d2,$a5,$35,$42,$db,$ac,$32,$45,$dc,$ab
|
||
+ $26,$51,$c8,$bf,$21,$56,$cf,$b8,$28,$5f,$c6,$b1,$2f,$58,$c1,$b6
|
||
+ $76,$01,$98,$ef,$71,$06,$9f,$e8,$78,$0f,$96,$e1,$7f,$08,$91,$e6
|
||
+ $6b,$1c,$85,$f2,$6c,$1b,$82,$f5,$65,$12,$8b,$fc,$62,$15,$8c,$fb
|
||
+ $4d,$3a,$a3,$d4,$4a,$3d,$a4,$d3,$43,$34,$ad,$da,$44,$33,$aa,$dd
|
||
+ $50,$27,$be,$c9,$57,$20,$b9,$ce,$5e,$29,$b0,$c7,$59,$2e,$b7,$c0
|
||
+ $ed,$9a,$03,$74,$ea,$9d,$04,$73,$e3,$94,$0d,$7a,$e4,$93,$0a,$7d
|
||
+ $f0,$87,$1e,$69,$f7,$80,$19,$6e,$fe,$89,$10,$67,$f9,$8e,$17,$60
|
||
+ $d6,$a1,$38,$4f,$d1,$a6,$3f,$48,$d8,$af,$36,$41,$df,$a8,$31,$46
|
||
+ $cb,$bc,$25,$52,$cc,$bb,$22,$55,$c5,$b2,$2b,$5c,$c2,$b5,$2c,$5b
|
||
+ $9b,$ec,$75,$02,$9c,$eb,$72,$05,$95,$e2,$7b,$0c,$92,$e5,$7c,$0b
|
||
+ $86,$f1,$68,$1f,$81,$f6,$6f,$18,$88,$ff,$66,$11,$8f,$f8,$61,$16
|
||
+ $a0,$d7,$4e,$39,$a7,$d0,$49,$3e,$ae,$d9,$40,$37,$a9,$de,$47,$30
|
||
+ $bd,$ca,$53,$24,$ba,$cd,$54,$23,$b3,$c4,$5d,$2a,$b4,$c3,$5a,$2d
|
||
|
||
START cld
|
||
ldx #$ff
|
||
txs
|
||
jsr SET_RESET_HOOK
|
||
ldx #$ff
|
||
lda P8_MACHID
|
||
and #$c0
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
cmp #$02 ;IIe or IIc?
|
||
bcs L211A
|
||
ldx #$df
|
||
L211A stx LOWER_MASK?
|
||
lda P8_MACHID
|
||
and #$02 ;Check for 80-column card
|
||
beq L2129
|
||
lda #$15 ;Disable 80 columns
|
||
jsr MON_COUT
|
||
L2129 jsr MEMSCAN
|
||
lda #‘?’ | $80
|
||
sta MON_PROMPT
|
||
jsr COPY_DEFAULTS?
|
||
jsr L35F6
|
||
L2136 jsr L34DA
|
||
jsr CLEAR_BUFFERS?
|
||
L213C lda L1053
|
||
sta L10F0
|
||
lda HIMEM4?
|
||
sta HIMEM3?
|
||
lda #$00
|
||
sta MON_WNDTOP
|
||
lda #$18
|
||
sta MON_WNDBTM
|
||
jsr PRINT_HEADER
|
||
jsr CHECK_LOWERCASE
|
||
jsr DO_MENU_SELECT ;If we RTS, we've selected "Generate checkcode"
|
||
lda #$00
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
jsr RESET_BUFFERS
|
||
jsr RESET_VALUES?
|
||
TRY_OS_AGAIN jsr GET_OS? ;MENU_OS_SELECTION set after this routine
|
||
jsr CLEAR_PAGE
|
||
ldx #$11
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_INSERT_DISK
|
||
|
||
ldx #$08
|
||
jsr CLEAR_LINE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs TRY_OS_AGAIN ;Carry set = go back
|
||
lda #$01
|
||
sta L1C89
|
||
L2197 jsr GET_FILE?
|
||
jsr CHK_VALID_FT
|
||
L219D lda FLAG_SUBMIT
|
||
beq L21A5
|
||
jmp HANDLE_SUBMIT
|
||
|
||
L21A5 lda L10F0
|
||
cmp #$b0
|
||
bne L21B2
|
||
jsr L2AD3
|
||
jsr L2BB8
|
||
L21B2 jsr L43B9
|
||
lda #$01
|
||
sta ALLOW_ESC
|
||
jsr L4827
|
||
lda L10F0
|
||
cmp #$b0
|
||
beq L21D0
|
||
jsr L3555
|
||
jsr L2891
|
||
jsr L2AD3
|
||
jsr L2BB8
|
||
L21D0 ldx PD_C4_FILETYPE
|
||
lda OS_SELECTION
|
||
bne L21E5
|
||
cpx #$fc ;BAS
|
||
bne L21DF
|
||
jmp CALC_CKSUM? ;Do BASIC checksum?!
|
||
|
||
L21DF inc FLAG_BASIC_BINARY
|
||
jmp L4BEF
|
||
|
||
L21E5 cpx #$01
|
||
bne L21EC
|
||
jmp L4EF4
|
||
|
||
L21EC cpx #$02
|
||
bne L21F3
|
||
jmp CALC_CKSUM?
|
||
|
||
L21F3 cpx #$04
|
||
bne L21FD
|
||
inc FLAG_BASIC_BINARY
|
||
jmp L4BEF
|
||
|
||
L21FD lda #$b0
|
||
sta L10F0
|
||
jsr L3555
|
||
jmp L3FF6
|
||
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_FILETYPE
|
||
|
||
jmp L3FF7
|
||
|
||
SET_RESET_HOOK lda #<START
|
||
sta MON_SOFTEVEC
|
||
lda #>START
|
||
sta MON_SOFTEVEC+1
|
||
eor #$a5
|
||
sta MON_PWREDUP
|
||
rts
|
||
|
||
CLEAR_BUFFERS? lda #$00
|
||
ldx #$ff
|
||
L2224 sta OS_SELECTION,x
|
||
dex
|
||
bne L2224
|
||
sta OS_SELECTION
|
||
ldx #$ff
|
||
L222F sta L1C00,x
|
||
dex
|
||
bne L222F
|
||
sta L1C00
|
||
ldx #$0e
|
||
L223A sta PD_C4_ACCESS,x
|
||
dex
|
||
bpl L223A
|
||
rts
|
||
|
||
RESET_BUFFERS lda #$00
|
||
ldx #$ff
|
||
L2245 sta L1C00,x
|
||
dex
|
||
bne L2245
|
||
sta L1C00
|
||
ldx #$69
|
||
L2250 sta L1B96,x
|
||
dex
|
||
bne L2250
|
||
sta L1B96
|
||
ldx #$0f
|
||
L225B sta L1B05,x
|
||
dex
|
||
bne L225B
|
||
sta L1B05
|
||
sta L1B01
|
||
sta L1B02
|
||
sta L1B03
|
||
sta L1B04
|
||
jsr INIT_V5_2345
|
||
jsr INIT_V5_6789
|
||
rts
|
||
|
||
; Print Indirect. Format is JSR followed by 2 byte address that points to the
|
||
; DCI string to be printed. Convoluted logic included to toggle lowercase to
|
||
; uppercase.
|
||
PRINT_IND pla
|
||
sta PTR
|
||
pla
|
||
sta PTR+1
|
||
clc
|
||
lda #$01
|
||
adc PTR
|
||
sta PTR
|
||
bcc @GETPTR2
|
||
inc PTR+1
|
||
@GETPTR2 ldy #$00
|
||
lda (PTR),y
|
||
sta PTR2
|
||
iny
|
||
lda (PTR),y
|
||
sta PTR2+1
|
||
clc
|
||
lda #$01
|
||
adc PTR
|
||
sta PTR
|
||
bcc @SETRTS
|
||
inc PTR+1
|
||
@SETRTS lda PTR+1
|
||
pha
|
||
lda PTR
|
||
pha
|
||
ldy #$00
|
||
beq @NEXT
|
||
|
||
@PRINT_MORE ora #$80
|
||
jsr @PRINT_EXIT
|
||
iny
|
||
@NEXT lda (PTR2),y
|
||
pha
|
||
lda LOWER_MASK?
|
||
eor #$df
|
||
beq @LOWERCASE_HIGH
|
||
pla
|
||
bpl @PRINT_MORE
|
||
bmi @PRINT_EXIT
|
||
|
||
@LOWERCASE_HIGH pla
|
||
bpl @LOWERCASE_LOW
|
||
cmp #$e0
|
||
bcc @PRINT_EXIT
|
||
sec
|
||
sbc #$20
|
||
jmp @PRINT_EXIT
|
||
|
||
@LOWERCASE_LOW cmp #$60
|
||
bcc @PRINT_MORE
|
||
sec
|
||
sbc #$20
|
||
jmp @PRINT_MORE
|
||
|
||
@PRINT_EXIT ora #$80
|
||
jsr MON_COUT
|
||
rts
|
||
|
||
GOTOXY lda L1052
|
||
bne @PR_BLANKS
|
||
txa
|
||
jsr MON_TABV
|
||
sty MON_CH
|
||
rts
|
||
|
||
@PR_BLANKS jsr MON_CROUT
|
||
tya
|
||
tax
|
||
bmi @NO_BLANKS
|
||
beq @NO_BLANKS
|
||
jsr MON_PRBL2
|
||
@NO_BLANKS rts
|
||
|
||
BUZZ_SOUND jsr MON_SAVE
|
||
lda #$87
|
||
ldy #$80
|
||
@LOOP tya
|
||
jsr CLICK_SPKR
|
||
eor #$ff
|
||
jsr CLICK_SPKR
|
||
dey
|
||
bne @LOOP
|
||
jsr MON_RESTORE
|
||
rts
|
||
|
||
CLICK_SPKR tax
|
||
@LOOP dex
|
||
bne @LOOP
|
||
bit SPKR
|
||
rts
|
||
|
||
CLEAR_LINE ldy #$00
|
||
txa
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
rts
|
||
|
||
GET_OS? lda #$15
|
||
sta PD_C4_PATH_ADDR
|
||
lda #$1b
|
||
sta PD_C4_PATH_ADDR+1
|
||
jmp MENU_OS_SELECTION
|
||
|
||
SHOW_MENU_OS lda MENU_SELECTION
|
||
bne @PRINT_PRODOS
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
@PRINT_PRODOS ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_OS_PRODOS
|
||
|
||
jsr MON_CLREOL
|
||
lda OS_SELECTION
|
||
bne @NOT_PRODOS
|
||
ldx #$0c
|
||
ldy #$0d
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CURRENT
|
||
|
||
@NOT_PRODOS lda MENU_SELECTION
|
||
cmp #$01
|
||
bne @PRINT_DOS33
|
||
ldx #$0d
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
@PRINT_DOS33 ldx #$0d
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_OS_DOS33
|
||
|
||
jsr MON_CLREOL
|
||
lda OS_SELECTION
|
||
beq @NOT_DOS33
|
||
ldx #$0d
|
||
ldy #$0d
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CURRENT
|
||
@NOT_DOS33 ldx #$17
|
||
ldy #$26
|
||
jsr GOTOXY
|
||
rts
|
||
|
||
MENU_OS_SELECTION lda OS_SELECTION
|
||
sta MENU_SELECTION
|
||
jsr PRINT_MENU_FOOTER
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_MAIN_MENU
|
||
ldx #$0a
|
||
ldy #$0a
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DOS_SELECTION
|
||
|
||
@AGAIN jsr SHOW_MENU_OS
|
||
lda KBDSTRB
|
||
lda #$a0
|
||
jsr MON_KEYIN
|
||
cmp #KEY_UP_ARROW
|
||
beq @UP
|
||
cmp #KEY_LEFT_ARROW
|
||
bne @CHK_DOWN
|
||
@UP dec MENU_SELECTION
|
||
bpl @AGAIN
|
||
lda #$01
|
||
sta MENU_SELECTION
|
||
jmp @AGAIN
|
||
|
||
@CHK_DOWN cmp #KEY_DOWN_ARROW
|
||
beq @DOWN
|
||
cmp #KEY_RIGHT_ARROW
|
||
bne @CHK_ESC
|
||
@DOWN inc MENU_SELECTION
|
||
lda MENU_SELECTION
|
||
cmp #$02
|
||
bcc @AGAIN
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
jmp @AGAIN
|
||
|
||
@CHK_ESC cmp #KEY_ESCAPE
|
||
bne @CHK_CR
|
||
jsr DO_MENU_SELECT
|
||
jmp GET_OS?
|
||
|
||
@CHK_CR cmp #KEY_CR
|
||
bne @AGAIN
|
||
lda MENU_SELECTION
|
||
sta OS_SELECTION
|
||
jsr SHOW_MENU_OS
|
||
rts
|
||
|
||
GET_FILE? lda OS_SELECTION
|
||
bne HANDLE_DOS33
|
||
jmp HANDLE_PRODOS
|
||
|
||
HANDLE_DOS33 lda #$00
|
||
sta PATH_LEN
|
||
sta PATH
|
||
lda L1050
|
||
sta L1B06
|
||
lda L1051
|
||
sta L1B07
|
||
jsr L259F
|
||
bne L243B
|
||
lda L1B17
|
||
cmp #$52
|
||
bne L2430
|
||
rts
|
||
|
||
L2430 lda L1B17
|
||
L2433 jsr L46AD
|
||
pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
L243B lda #$80
|
||
jmp L2433
|
||
|
||
HANDLE_PRODOS jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
|
||
L2452 ldx #$09
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ENTER_PATHNAME
|
||
|
||
jsr SHOW_VOLS_MSG
|
||
lda PATH_LEN
|
||
beq GET_PATH?
|
||
ldx #$0a
|
||
jsr CLEAR_LINE
|
||
ldx #$0b
|
||
jsr CLEAR_LINE
|
||
ldx #$0a
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
lda MON_PROMPT
|
||
jsr MON_COUT
|
||
ldx PATH_LEN
|
||
jmp INPUT_FILENAME
|
||
|
||
GET_PATH? ldx #$09
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr INPUT_PATH ;$200 is buffer, X = length
|
||
cpx #$51
|
||
bcc L2493
|
||
jmp L253F
|
||
|
||
L2493 jsr MON_SAVE
|
||
jsr CLEAR_PAGE
|
||
jsr MON_RESTORE
|
||
dec FLAG_ALLOW_ONLINE
|
||
cmp #‘?’ | $80 ;Acc is last char entered - show ONLINE
|
||
bne L24A6
|
||
jmp SHOW_ONLINE
|
||
|
||
L24A6 jsr MON_RESTORE
|
||
bne L24B6
|
||
L24AB jsr BUZZ_SOUND
|
||
lda #$00
|
||
sta PATH_LEN
|
||
jmp HANDLE_PRODOS
|
||
|
||
L24B6 cmp #$02
|
||
bcc L24BD
|
||
jmp HAVE_PATH
|
||
|
||
L24BD lda $0200
|
||
cmp #KEY_ESCAPE
|
||
beq @ESCAPE
|
||
cmp #‘@’ | $80 ;Activate SUBMIT? (???)
|
||
bne L24AB
|
||
jsr ASK_ACT_SUBMIT
|
||
jmp HANDLE_PRODOS
|
||
|
||
@ESCAPE pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
INPUT_FILENAME ldy #$00
|
||
L24D5 lda PATH,y
|
||
ora #$80
|
||
sta $0200,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L24D5
|
||
ldy PATH_LEN
|
||
iny
|
||
ldx #$0a
|
||
jsr GOTOXY
|
||
ldx PATH_LEN
|
||
lda #$a0
|
||
jsr NEXT_KEY
|
||
cpx #$51
|
||
bcc L2493
|
||
jmp L253F
|
||
|
||
L24FC dec PATH_LEN
|
||
jmp L2516
|
||
|
||
HAVE_PATH stx PATH_LEN
|
||
stx MON_A1L
|
||
ldy #$00
|
||
ldx #$00
|
||
L250B lda $0200,x
|
||
cmp #$a0
|
||
beq L24FC
|
||
sta PATH,y
|
||
iny
|
||
L2516 inx
|
||
dec MON_A1L
|
||
bne L250B
|
||
lda PATH_LEN
|
||
bpl L2522
|
||
lda #$00
|
||
L2522 sta PATH_LEN
|
||
jsr GET_FILE_INFO
|
||
bcc @NOERROR
|
||
jsr L46AD
|
||
jmp GET_FILE?
|
||
|
||
@NOERROR lda PD_C4_FILETYPE
|
||
cmp #$0f ;Test if DIR
|
||
beq @ISDIR
|
||
rts
|
||
|
||
@ISDIR ldx PATH_LEN
|
||
cpx #$41
|
||
bcc L255F
|
||
L253F jsr CLEAR_PAGE
|
||
jsr BUZZ_SOUND
|
||
ldx #$16
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
asl $1a,x
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L255C
|
||
jmp GET_FILE?
|
||
|
||
L255C jmp @ESCAPE
|
||
|
||
L255F jsr L4674
|
||
bcc L256A
|
||
jsr L46AD
|
||
jmp GET_FILE?
|
||
|
||
L256A jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$08
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ADD_PREFIX
|
||
L2579 lda #$a0
|
||
jsr MON_RDKEY
|
||
cmp #$9b
|
||
bne L2585
|
||
jmp @ESCAPE
|
||
|
||
L2585 cmp #$ce
|
||
beq L258D
|
||
cmp #$ee
|
||
bne L2591
|
||
L258D jsr CLEAR_PAGE
|
||
rts
|
||
|
||
L2591 cmp #$d9
|
||
beq L2599
|
||
cmp #$f9
|
||
bne L2579
|
||
L2599 jsr CLEAR_PAGE
|
||
jmp HANDLE_PRODOS
|
||
|
||
L259F lda #$00
|
||
sta L0F0F
|
||
lda L1050
|
||
and #$07
|
||
asl A
|
||
asl A
|
||
asl A
|
||
asl A
|
||
asl A
|
||
sta L0F0F
|
||
lda L1051
|
||
sec
|
||
sbc #$01
|
||
lsr A
|
||
ror L0F0F
|
||
lda L0F0F
|
||
clc
|
||
jsr L4666
|
||
bne L25DB
|
||
L25C4 ldx #$10
|
||
ldy #$00
|
||
L25C8 lda $0800,y
|
||
sta PATH,y
|
||
iny
|
||
dex
|
||
bne L25C8
|
||
lda PATH
|
||
and #$0f
|
||
sta PATH
|
||
rts
|
||
|
||
L25DB lda OS_SELECTION
|
||
beq L25E3
|
||
jmp L25C4
|
||
|
||
L25E3 jsr L46AD
|
||
jmp GET_FILE?
|
||
|
||
SHOW_ONLINE ldx #$0a
|
||
jsr CLEAR_LINE
|
||
ldx #$0b
|
||
jsr CLEAR_LINE
|
||
lda #$00
|
||
sta PATH_LEN
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
|
||
ldx #$09
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ENTER_PATHNAME
|
||
jsr MON_CROUT
|
||
lda MON_PROMPT
|
||
jsr MON_COUT
|
||
lda #$00
|
||
sta L1B03
|
||
jsr L466D
|
||
bne L25DB
|
||
lda $0800
|
||
and #$0f
|
||
bne L2632
|
||
lda $0801
|
||
jmp L25DB
|
||
|
||
L2632 ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
ldx #$00
|
||
ldy #$00
|
||
L263D sty CHAR_READ
|
||
lda $0800,y
|
||
beq L267A
|
||
and #$0f
|
||
beq L2670
|
||
tax
|
||
iny
|
||
lda #$af
|
||
jsr MON_COUT
|
||
L2650 lda $0800,y
|
||
ora #$80
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L2650
|
||
lda L1B03
|
||
eor #$01
|
||
sta L1B03
|
||
bne L266C
|
||
jsr MON_CROUT
|
||
jmp L2670
|
||
|
||
L266C ldy #$14
|
||
sty MON_CH
|
||
L2670 lda CHAR_READ
|
||
clc
|
||
adc #$10
|
||
tay
|
||
jmp L263D
|
||
|
||
L267A lda MON_CV
|
||
cmp #$14
|
||
bcc L2683
|
||
jsr MON_CROUT
|
||
L2683 inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcc L2690
|
||
pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
L2690 jmp L2452
|
||
|
||
L2693 ldx #$0c
|
||
ldy #$0f
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SLOT
|
||
lda L1B0D
|
||
jsr MON_COUT
|
||
ldx #$0c
|
||
ldy #$15
|
||
jsr GOTOXY
|
||
jsr MON_RDKEY
|
||
cmp #$9b
|
||
beq L26C7
|
||
cmp #$8d
|
||
beq L26C5
|
||
jsr MON_COUT
|
||
cmp #$b1
|
||
bcc L26C9
|
||
cmp #$b8
|
||
bcs L26C9
|
||
sta L1B0D
|
||
L26C5 clc
|
||
rts
|
||
|
||
L26C7 sec
|
||
rts
|
||
|
||
L26C9 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_SLOT
|
||
jsr PROMPT_CONTINUE
|
||
jsr CLEAR_PAGE
|
||
jmp L2693
|
||
|
||
L26E1 ldx #$0d
|
||
ldy #$0e
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DRIVE
|
||
lda L1B0E
|
||
jsr MON_COUT
|
||
ldx #$0d
|
||
ldy #$15
|
||
jsr GOTOXY
|
||
jsr MON_RDKEY
|
||
cmp #$9b
|
||
beq L2715
|
||
cmp #$8d
|
||
beq L2713
|
||
jsr MON_COUT
|
||
cmp #$b1
|
||
bcc L2717
|
||
cmp #$b3
|
||
bcs L2717
|
||
sta L1B0E
|
||
L2713 clc
|
||
rts
|
||
|
||
L2715 sec
|
||
rts
|
||
|
||
L2717 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_DRIVE
|
||
jsr PROMPT_CONTINUE
|
||
jsr CLEAR_PAGE
|
||
jmp L26E1
|
||
|
||
SHOW_VOLS_MSG jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_VOLS_ONLINE
|
||
lda #$01
|
||
sta FLAG_ALLOW_ONLINE
|
||
rts
|
||
|
||
L2744 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$0b
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_Q_FOR_CAT
|
||
lda #$01
|
||
sta FLAG_ALLOW_ONLINE
|
||
rts
|
||
|
||
L2759 sty L1B02
|
||
jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy L1B02
|
||
jsr GOTOXY
|
||
jsr BUZZ_SOUND
|
||
rts
|
||
|
||
L276B jsr PROMPT_CONTINUE
|
||
jsr CLEAR_PAGE
|
||
rts
|
||
|
||
L2772 cmp #$9b
|
||
bne L277C
|
||
ldx #$ff
|
||
txs
|
||
jmp L213C
|
||
|
||
L277C rts
|
||
|
||
PRINT_HEADER jsr MON_HOME
|
||
ldx #$00
|
||
ldy #$0f
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_KEY_PERFECT
|
||
|
||
ldx #$01
|
||
ldy #$0e
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_VERSION_50
|
||
|
||
ldx #$02
|
||
ldy #$13
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_BY
|
||
ldx #$03
|
||
ldy #$0d
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_AUTHOR
|
||
|
||
ldx #$04
|
||
ldy #$0b
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_COPYRIGHT
|
||
ldx #$05
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_MICROSPARC
|
||
jsr MON_CROUT
|
||
jsr PRINT_DASH_LINE
|
||
ldx #$15
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_DASH_LINE
|
||
lda #$07
|
||
sta MON_WNDTOP
|
||
rts
|
||
|
||
PRINT_DASH_LINE lda #‘-’ | $80
|
||
ldx #38
|
||
@LOOP jsr MON_COUT
|
||
dex
|
||
bpl @LOOP
|
||
rts
|
||
|
||
INPUT_PATH jsr MON_CROUT
|
||
lda MON_PROMPT
|
||
jsr MON_COUT
|
||
SET_FIRST_CHAR ldx #$00
|
||
NEXT_KEY jsr MON_RDKEY
|
||
sta CHAR_READ
|
||
lda FLAG_ALLOW_ONLINE
|
||
beq @SKIP_ONLINE
|
||
lda CHAR_READ
|
||
cmp #‘?’ | $80
|
||
bne @CHECK_CR
|
||
cpx #$00
|
||
bne @CHECK_CR
|
||
rts
|
||
|
||
@SKIP_ONLINE lda CHAR_READ
|
||
@CHECK_CR cmp #KEY_CR
|
||
bne @CHECK_ESCAPE
|
||
jmp ACCEPT_FILENAME
|
||
|
||
@CHECK_ESCAPE cmp #KEY_ESCAPE
|
||
bne @CHECK_CASE
|
||
jmp TRY_OS_AGAIN
|
||
|
||
@CHECK_CASE cmp #$a0
|
||
bcc @CHECK_LEFT
|
||
cmp #$e0
|
||
bcc @ADD_BUFFER
|
||
and #$df
|
||
jmp @ADD_BUFFER
|
||
|
||
@CHECK_LEFT cmp #$ff ;Delete key?
|
||
beq @ERASE
|
||
cmp #KEY_LEFT_ARROW
|
||
bne @CHECK_RIGHT
|
||
@ERASE dex
|
||
bpl @AGAIN
|
||
jmp SET_FIRST_CHAR
|
||
|
||
@AGAIN jsr MON_SAVE
|
||
jsr MON_BS
|
||
jsr MON_RESTORE
|
||
L283E jmp NEXT_KEY
|
||
|
||
@CHECK_RIGHT cmp #$89 ;Ctrl+I
|
||
beq L2849
|
||
cmp #KEY_RIGHT_ARROW
|
||
bne L285E
|
||
L2849 inx
|
||
cpx #$46
|
||
bcc L2852
|
||
ldx #$45
|
||
bne L283E
|
||
|
||
L2852 jsr MON_SAVE
|
||
jsr MON_ADVANCE
|
||
jsr MON_RESTORE
|
||
jmp NEXT_KEY
|
||
|
||
L285E cmp #$98 ;Ctrl+X
|
||
bne L287F
|
||
ldx MON_CV
|
||
stx L1B04
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
ldx L1B04
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jmp NEXT_KEY
|
||
|
||
@ADD_BUFFER jsr MON_COUT
|
||
ora #$80
|
||
L287F sta $0200,x
|
||
inx
|
||
jmp NEXT_KEY
|
||
|
||
ACCEPT_FILENAME jsr MON_SAVE
|
||
jsr MON_CLREOL
|
||
jsr MON_RESTORE
|
||
txa
|
||
rts
|
||
|
||
L2891 ldx #$00
|
||
ldy #$0d
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_KP_50
|
||
|
||
rts
|
||
|
||
L289E sta $0300
|
||
stx $0301
|
||
sty $0302
|
||
ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
ldx #$08
|
||
L28B0 jsr MON_CLREOL
|
||
jsr MON_CROUT
|
||
dex
|
||
bpl L28B0
|
||
ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
ldy #$00
|
||
ldx $0301
|
||
beq L28E7
|
||
L28C7 lda L105A,y
|
||
sta CHAR_READ
|
||
cmp #$a1
|
||
bcs L28D7
|
||
jsr L2DCF
|
||
jmp L28DA
|
||
|
||
L28D7 jsr MON_COUT
|
||
L28DA lda MON_CH
|
||
cmp #$1e
|
||
bcc L28E3
|
||
jsr MON_CROUT
|
||
L28E3 iny
|
||
dex
|
||
bne L28C7
|
||
L28E7 lda $0300
|
||
ldx $0301
|
||
ldy $0302
|
||
rts
|
||
|
||
L28F1 jmp L2A44
|
||
|
||
L28F4 jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$09
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_LP_DEFAULTS
|
||
ldx L1054
|
||
bne L2919
|
||
ldx #$b1
|
||
L2919 stx L1B0D
|
||
jsr L2693
|
||
bcc L2924
|
||
jmp L3910
|
||
|
||
L2924 lda L1B0D
|
||
and #$0f
|
||
asl A
|
||
asl A
|
||
asl A
|
||
asl A
|
||
sta CHAR_READ
|
||
ldx P8_DEVCNT
|
||
L2933 lda P8_DEVLST,x
|
||
and #$f0
|
||
cmp CHAR_READ
|
||
beq L28F1
|
||
dex
|
||
bpl L2933
|
||
ldx P8_DEVCNT
|
||
lda CHAR_READ
|
||
ora #$80
|
||
sta CHAR_READ
|
||
L294B lda P8_DEVLST,x
|
||
and #$f0
|
||
cmp CHAR_READ
|
||
beq L28F1
|
||
dex
|
||
bpl L294B
|
||
lda L1050
|
||
cmp #$b3
|
||
bne L2966
|
||
lda P8_DEVADR01+23
|
||
cmp #$ff
|
||
beq L28F1
|
||
L2966 ldx #$08
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_INP_LP_CTRL
|
||
jsr MON_CROUT
|
||
ldx L1059
|
||
beq L29B5
|
||
jsr L289E
|
||
L2987 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ACCPT_LP_CTRL
|
||
|
||
jsr MON_RDKEY
|
||
jsr MON_COUT
|
||
ldx L1059
|
||
cmp #$ce
|
||
beq L29B5
|
||
cmp #$ee
|
||
beq L29B5
|
||
cmp #$d9
|
||
beq L29B2
|
||
cmp #$f9
|
||
beq L29B2
|
||
jmp L2987
|
||
|
||
L29B2 jmp L2A56
|
||
|
||
L29B5 ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_EXACT_KEYS
|
||
|
||
jsr MON_CROUT
|
||
jsr PRINT_IND
|
||
.dd2 TXT_EXACT_KEYS2
|
||
ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
ldx #$00
|
||
L29DF jsr MON_RDKEY
|
||
cmp #$de
|
||
beq L2A56
|
||
cmp #$a1
|
||
bcs L2A2F
|
||
cmp #$88
|
||
bne L2A04
|
||
dex
|
||
bpl L29F5
|
||
ldx #$00
|
||
beq L29DF
|
||
|
||
L29F5 jsr MON_SAVE
|
||
jsr MON_RESTORE
|
||
jsr L289E
|
||
jsr MON_RESTORE
|
||
L2A01 jmp L29DF
|
||
|
||
L2A04 cmp #$95
|
||
bne L2A20
|
||
inx
|
||
cpx #$1e
|
||
bcc L2A11
|
||
ldx #$1d
|
||
bne L2A01
|
||
|
||
L2A11 jsr MON_SAVE
|
||
jsr MON_RESTORE
|
||
jsr L289E
|
||
jsr MON_RESTORE
|
||
jmp L29DF
|
||
|
||
L2A20 sta CHAR_READ
|
||
jsr MON_SAVE
|
||
jsr L2DCF
|
||
jsr MON_RESTORE
|
||
jmp L2A32
|
||
|
||
L2A2F jsr MON_COUT
|
||
L2A32 ora #$80
|
||
sta L105A,x
|
||
inx
|
||
lda MON_CH
|
||
cmp #$1e
|
||
bcc L2A41
|
||
jsr MON_CROUT
|
||
L2A41 jmp L29DF
|
||
|
||
L2A44 ldx #$10
|
||
ldy #$02
|
||
jsr L2759
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ALRDY_DISK_SLOT
|
||
jsr L276B
|
||
jmp L28F4
|
||
|
||
L2A56 stx L1059
|
||
jsr CLEAR_PAGE
|
||
lda L1B0D
|
||
sta L1054
|
||
lda L10F0
|
||
and #$0f
|
||
beq L2A72
|
||
lda L1054
|
||
sta L10F0
|
||
sta L1053
|
||
L2A72 ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L2A89
|
||
jmp L3910
|
||
|
||
L2A89 jmp L28F4
|
||
|
||
PROMPT_CONTINUE ldx #$17
|
||
jsr CLEAR_LINE
|
||
ldx #$17
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RET_CONTINUE
|
||
|
||
L2A9D lda KBDSTRB
|
||
lda #$a0
|
||
jsr MON_KEYIN
|
||
sta TEMP_CHAR2
|
||
lda ALLOW_ESC
|
||
beq L2AB4
|
||
lda TEMP_CHAR2
|
||
cmp #KEY_ESCAPE
|
||
beq L2AC7
|
||
L2AB4 lda TEMP_CHAR2
|
||
cmp #KEY_CR
|
||
bne L2A9D
|
||
ldx #$17
|
||
jsr CLEAR_LINE
|
||
ldx #$00
|
||
stx ALLOW_ESC
|
||
clc ;Continue
|
||
rts
|
||
|
||
L2AC7 ldx #$17
|
||
jsr CLEAR_LINE
|
||
ldx #$00
|
||
stx ALLOW_ESC
|
||
sec ;Go back
|
||
rts
|
||
|
||
L2AD3 lda L10F0
|
||
cmp #$b0
|
||
bne L2AE5
|
||
lda #$01
|
||
sta MON_WNDTOP
|
||
lda #$18
|
||
sta MON_WNDBTM
|
||
jsr MON_HOME
|
||
L2AE5 ldx #$01
|
||
ldy #$11
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RUN_ON
|
||
|
||
lda #$00
|
||
sta L1BC1
|
||
sta L1BC2
|
||
lda OS_SELECTION
|
||
bne L2B57
|
||
lda L1C00
|
||
beq L2B33
|
||
tax
|
||
ldy #$ff
|
||
L2B06 dex
|
||
bmi L2B1E
|
||
iny
|
||
lda L1C01,x
|
||
cmp #$af
|
||
bne L2B06
|
||
sty L1BC2
|
||
inx
|
||
stx L1BC1
|
||
sty L1B05
|
||
jmp L2B65
|
||
|
||
L2B1E lda #$00
|
||
sta L1BC1
|
||
lda L1C00
|
||
cmp #$10
|
||
bcs L2B52
|
||
sta L1BC2
|
||
sta L1B05
|
||
jmp L2B65
|
||
|
||
L2B33 ldx PATH_LEN
|
||
beq L2B52
|
||
ldy #$ff
|
||
L2B3A dex
|
||
bmi L2B52
|
||
iny
|
||
lda PATH,x
|
||
cmp #$af
|
||
bne L2B3A
|
||
sty L1BC2
|
||
inx
|
||
stx L1BC1
|
||
sty L1B05
|
||
jmp L2B65
|
||
|
||
L2B52 lda #$ff
|
||
jmp L46AD
|
||
|
||
L2B57 lda #$00
|
||
sta L1BC1
|
||
lda L1C00
|
||
sta L1BC2
|
||
sta L1B05
|
||
L2B65 inc L1B05
|
||
lsr L1B05
|
||
sec
|
||
lda #$14
|
||
sbc L1B05
|
||
tay
|
||
bpl L2B76
|
||
ldy #$00
|
||
L2B76 ldx #$02
|
||
jsr GOTOXY
|
||
ldy L1BC2
|
||
ldx L1BC1
|
||
lda L1C00
|
||
beq L2B94
|
||
L2B86 lda L1C01,x
|
||
ora #$80
|
||
jsr MON_COUT
|
||
inx
|
||
dey
|
||
bne L2B86
|
||
beq L2BA0
|
||
|
||
L2B94 lda PATH,x
|
||
ora #$80
|
||
jsr MON_COUT
|
||
inx
|
||
dey
|
||
bne L2B94
|
||
L2BA0 ldx #$03
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_EQUALS
|
||
|
||
lda L10F0
|
||
cmp #$b0
|
||
bne L2BB7
|
||
lda #$04
|
||
sta MON_WNDTOP
|
||
L2BB7 rts
|
||
|
||
L2BB8 lda KP_VER_FLAG
|
||
bmi L2BCE
|
||
beq L2BD1
|
||
ldx #$04
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CODE_50
|
||
jmp L2BDD
|
||
|
||
L2BCE jmp L2C46
|
||
|
||
L2BD1 ldx #$04
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CODE_40
|
||
L2BDD ldx #$05
|
||
jsr MON_PRBL2
|
||
jsr L2CA2
|
||
bcs L2BF9
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LINE_NO
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASH
|
||
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LINE_NO
|
||
jmp L2C08
|
||
|
||
L2BF9 jsr PRINT_IND
|
||
.dd2 TXT_ADDR_NO
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASH
|
||
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ADDR_NO
|
||
L2C08 lda KP_VER_FLAG
|
||
beq L2C1C
|
||
ldx #$05
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASHES
|
||
|
||
jmp L2C2D
|
||
|
||
L2C1C ldx #$05
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_8_DASHES
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
L2C2D ldx #$05
|
||
jsr MON_PRBL2
|
||
jsr PRINT_IND
|
||
.dd2 TXT_13_DASHES
|
||
|
||
L2C37 jsr MON_CROUT
|
||
lda L10F0
|
||
cmp #$b0
|
||
bne L2C45
|
||
lda #$06
|
||
sta MON_WNDTOP
|
||
L2C45 rts
|
||
|
||
L2C46 ldx #$04
|
||
ldy #$03
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CODE_50
|
||
jsr MON_PRBLNK
|
||
jsr L2CA2
|
||
bcs L2C6C
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LINE_NO
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASH
|
||
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LINE_NO
|
||
jmp L2C7B
|
||
|
||
L2C6C jsr PRINT_IND
|
||
.dd2 TXT_ADDR_NO
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASH
|
||
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ADDR_NO
|
||
L2C7B jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CODE_40
|
||
ldx #$05
|
||
ldy #$03
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DASHES
|
||
|
||
jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_13_DASHES
|
||
|
||
jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_8_DASHES
|
||
jmp L2C37
|
||
|
||
L2CA2 lda OS_SELECTION
|
||
bne L2CB2
|
||
lda PD_C4_FILETYPE
|
||
cmp #$fc
|
||
bne L2CB0
|
||
L2CAE clc
|
||
rts
|
||
|
||
L2CB0 sec
|
||
rts
|
||
|
||
L2CB2 ldx PD_C4_FILETYPE
|
||
dex
|
||
dex
|
||
dex
|
||
bpl L2CB0
|
||
bmi L2CAE
|
||
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$08
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_VIEW_DEFAULTS
|
||
|
||
ldx #$0a
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SLOT
|
||
lda L1050
|
||
ora #$b0
|
||
jsr MON_COUT
|
||
jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DRIVE
|
||
lda L1051
|
||
ora #$b0
|
||
jsr MON_COUT
|
||
jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_FOR_DOS_ONLY
|
||
|
||
ldx #$0b
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_FORMAT
|
||
|
||
lda KP_VER_FLAG
|
||
bmi L2D1A
|
||
beq L2D12
|
||
jsr PRINT_IND
|
||
.dd2 TXT_V5
|
||
jmp L2D33
|
||
|
||
L2D12 jsr PRINT_IND
|
||
.dd2 TXT_V4
|
||
jmp L2D33
|
||
|
||
L2D1A jsr PRINT_IND
|
||
.dd2 TXT_BOTH
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr PRINT_IND
|
||
.dd2 TXT_V4
|
||
jsr PRINT_IND
|
||
.dd2 TXT_AND
|
||
jsr PRINT_IND
|
||
.dd2 TXT_V5
|
||
L2D33 ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CNTRL_CODE_LIST
|
||
lda L1057
|
||
beq L2D4C
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ON
|
||
jmp L2D51
|
||
|
||
L2D4C jsr PRINT_IND
|
||
.dd2 TXT_OFF
|
||
|
||
L2D51 ldx #$0d
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_PRINTER
|
||
lda L10F0
|
||
and #$0f
|
||
beq L2D6C
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ON
|
||
jmp L2D71
|
||
|
||
L2D6C jsr PRINT_IND
|
||
.dd2 TXT_OFF
|
||
|
||
L2D71 ldx #$0d
|
||
ldy #$0f
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SLOT
|
||
lda L1054
|
||
ora #$b0
|
||
jsr MON_COUT
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LP_CONTROL
|
||
|
||
jsr MON_CROUT
|
||
ldx L1059
|
||
bne L2D9C
|
||
jmp L2DC4
|
||
|
||
L2D9C ldy #$00
|
||
L2D9E lda L105A,y
|
||
sta CHAR_READ
|
||
cmp #$a1
|
||
bcc L2DBE
|
||
and LOWER_MASK?
|
||
jsr MON_COUT
|
||
L2DAE lda MON_CH
|
||
cmp #$1e
|
||
bcc L2DB7
|
||
jsr MON_CROUT
|
||
L2DB7 iny
|
||
dex
|
||
bne L2D9E
|
||
jmp L2DC4
|
||
|
||
L2DBE jsr L2DCF
|
||
jmp L2DAE
|
||
|
||
L2DC4 ldx #$16
|
||
jsr CLEAR_LINE
|
||
jsr PROMPT_CONTINUE
|
||
jmp L3910
|
||
|
||
L2DCF lda CHAR_READ
|
||
cmp #$a0
|
||
bne L2DEA
|
||
stx L1B04
|
||
sty L1B03
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SPACE
|
||
|
||
ldx L1B04
|
||
ldy L1B03
|
||
jmp L2E38
|
||
|
||
L2DEA cmp #$9b
|
||
bne L2E02
|
||
stx L1B04
|
||
sty L1B03
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESCAPE
|
||
ldx L1B04
|
||
ldy L1B03
|
||
jmp L2E38
|
||
|
||
L2E02 cmp #$8d
|
||
bne L2E1A
|
||
stx L1B04
|
||
sty L1B03
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RETURN
|
||
|
||
ldx L1B04
|
||
ldy L1B03
|
||
jmp L2E38
|
||
|
||
L2E1A stx L1B04
|
||
sty L1B03
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CONTROL
|
||
lda CHAR_READ
|
||
ora #$c0
|
||
jsr MON_COUT
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
ldx L1B04
|
||
ldy L1B03
|
||
L2E38 rts
|
||
|
||
CHK_VALID_FT ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
lda OS_SELECTION
|
||
beq CHK_PRODOS_FT ;ProDOS
|
||
jmp CHK_DOS_FT ;DOS 3.3
|
||
|
||
CHK_PRODOS_FT lda PD_C4_FILETYPE
|
||
cmp #$0f ;DIR
|
||
beq GET_FILENAME?
|
||
jsr CHK_PD_FILETYPES ;Carry clear=OK, set=error
|
||
bcc GOT_GOOD_FT
|
||
pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
GOT_GOOD_FT pla
|
||
pla
|
||
jmp L219D
|
||
|
||
GET_FILENAME? jsr L2744
|
||
ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_FILENAME
|
||
|
||
lda #$a0
|
||
jsr SET_FIRST_CHAR
|
||
cpx #$41
|
||
bcc L2E7F
|
||
jmp L2EC2
|
||
|
||
L2E7F jsr MON_SAVE
|
||
jsr CLEAR_PAGE
|
||
jsr MON_RESTORE
|
||
dec FLAG_ALLOW_ONLINE
|
||
cmp #$bf
|
||
bne L2EA2
|
||
ldx #$0c
|
||
ldy #$0a
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
jsr L41E7
|
||
jmp GET_FILENAME?
|
||
|
||
L2EA2 cmp #$00
|
||
beq L2EB6
|
||
cmp #$02
|
||
bcs L2EDF
|
||
lda $0200
|
||
cmp #$9b
|
||
bne L2EDF
|
||
pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
L2EB6 jsr BUZZ_SOUND
|
||
jmp CHK_PRODOS_FT
|
||
|
||
L2EBC dec L1C00
|
||
jmp L2EF3
|
||
|
||
L2EC2 jsr CLEAR_PAGE
|
||
jsr BUZZ_SOUND
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_ENTRY_TOO_LONG
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcc L2EDF
|
||
jmp CHK_VALID_FT
|
||
|
||
L2EDF stx L1C00
|
||
stx MON_A1L
|
||
ldy #$00
|
||
ldx #$00
|
||
L2EE8 lda $0200,x
|
||
cmp #$a0
|
||
beq L2EBC
|
||
sta L1C01,y
|
||
iny
|
||
L2EF3 inx
|
||
dec MON_A1L
|
||
bne L2EE8
|
||
lda L1C00
|
||
bpl L2EFF
|
||
lda #$00
|
||
L2EFF sta L1C00
|
||
lda #$00
|
||
sta PD_C4_PATH_ADDR
|
||
lda #$1c
|
||
sta PD_C4_PATH_ADDR+1
|
||
jsr GET_FILE_INFO
|
||
bcc L2F21
|
||
jsr L46AD
|
||
L2F14 lda #$15
|
||
sta PD_C4_PATH_ADDR
|
||
lda #$1b
|
||
sta PD_C4_PATH_ADDR+1
|
||
jmp GET_FILENAME?
|
||
|
||
L2F21 lda PD_C4_FILETYPE
|
||
jsr CHK_PD_FILETYPES
|
||
bcs L2F14
|
||
rts
|
||
|
||
CHK_DOS_FT jsr L2744
|
||
ldx #$0c
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_FILENAME
|
||
|
||
lda #$a0
|
||
jsr SET_FIRST_CHAR
|
||
cpx #$1f
|
||
bcc L2F45
|
||
jmp L2F96
|
||
|
||
L2F45 jsr MON_SAVE
|
||
jsr CLEAR_PAGE
|
||
jsr MON_RESTORE
|
||
dec FLAG_ALLOW_ONLINE
|
||
cmp #$bf
|
||
bne L2F6D
|
||
lda #$00
|
||
sta L1BC4
|
||
ldx #$0c
|
||
ldy #$0a
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
jsr L4013
|
||
jmp CHK_DOS_FT
|
||
|
||
L2F6D cmp #$00
|
||
beq L2F81
|
||
cmp #$02
|
||
bcs L2FB0
|
||
lda $0200
|
||
cmp #$9b
|
||
bne L2FB0
|
||
L2F7C pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
L2F81 jsr BUZZ_SOUND
|
||
jmp CHK_DOS_FT
|
||
|
||
L2F87 cpy #$01
|
||
bcc L2F90
|
||
lda #$a0
|
||
jmp L2FC0
|
||
|
||
L2F90 dec L1C00
|
||
jmp L2FC4
|
||
|
||
L2F96 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_NAME_TOO_LONG
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L2F7C
|
||
jmp CHK_VALID_FT
|
||
|
||
L2FB0 stx L1C00
|
||
stx MON_A1L
|
||
ldy #$00
|
||
ldx #$00
|
||
L2FB9 lda $0200,x
|
||
cmp #$a0
|
||
beq L2F87
|
||
L2FC0 sta L1C01,y
|
||
iny
|
||
L2FC4 inx
|
||
dec MON_A1L
|
||
bne L2FB9
|
||
lda L1C00
|
||
bpl L2FD0
|
||
lda #$00
|
||
L2FD0 sta L1C00
|
||
lda #$01
|
||
sta L1BC4
|
||
jsr L4013
|
||
bcc L2FE0
|
||
jmp CHK_DOS_FT
|
||
|
||
L2FE0 rts
|
||
|
||
CHK_PD_FILETYPES cmp #$06 ;BIN
|
||
beq @FT_OK
|
||
cmp #$f0 ;CMD
|
||
beq @FT_OK
|
||
cmp #$f1 ;User $F1
|
||
beq @FT_OK
|
||
cmp #$f2 ;User $F2
|
||
beq @FT_OK
|
||
cmp #$f3 ;User $F3
|
||
beq @FT_OK
|
||
cmp #$f4 ;User $F4
|
||
beq @FT_OK
|
||
cmp #$f5 ;User $F5
|
||
beq @FT_OK
|
||
cmp #$f6 ;User $F6
|
||
beq @FT_OK
|
||
cmp #$f7 ;User $F7
|
||
beq @FT_OK
|
||
cmp #$f8 ;User $F8
|
||
beq @FT_OK
|
||
cmp #$fc ;BAS
|
||
beq @FT_OK
|
||
cmp #$fd ;VAR
|
||
beq @FT_OK
|
||
cmp #$ff ;SYS
|
||
beq @FT_OK
|
||
sta CHAR_READ
|
||
lda FLAG_SUBMIT
|
||
beq L3049
|
||
lda L1081
|
||
bne L3038
|
||
lda CHAR_READ
|
||
cmp #$04
|
||
beq @GOOD_RET
|
||
bne L3038
|
||
|
||
@FT_OK sta CHAR_READ
|
||
lda FLAG_SUBMIT
|
||
bne L3038
|
||
lda CHAR_READ
|
||
@GOOD_RET clc
|
||
rts
|
||
|
||
L3038 ldx #$17
|
||
ldy #$07
|
||
jsr L2759
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_FILETYPE
|
||
|
||
jsr L276B
|
||
sec
|
||
rts
|
||
|
||
L3049 lda CHAR_READ
|
||
cmp #$0f
|
||
bne L3038
|
||
jsr CLEAR_PAGE
|
||
jsr BUZZ_SOUND
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
sty $1a
|
||
L3062 lda #$a0
|
||
jsr MON_RDKEY
|
||
cmp #$9b
|
||
bne L3072
|
||
pla
|
||
pla
|
||
pla
|
||
pla
|
||
jmp TRY_OS_AGAIN
|
||
|
||
L3072 cmp #$ce
|
||
beq L3038
|
||
cmp #$ee
|
||
beq L3038
|
||
cmp #$d9
|
||
beq L3082
|
||
cmp #$f9
|
||
bne L3062
|
||
L3082 clc
|
||
lda PATH_LEN
|
||
adc L1C00
|
||
sta MON_A1H
|
||
cmp #$65
|
||
bcc L30A0
|
||
ldx #$16
|
||
ldy #$01
|
||
jsr L2759
|
||
jsr PRINT_IND
|
||
.dd2 ERR_CANNOT_ADD_PFX
|
||
jsr L276B
|
||
sec
|
||
rts
|
||
|
||
L30A0 ldx PATH_LEN
|
||
lda PATH_LEN,x
|
||
cmp #$af
|
||
beq L30B1
|
||
inc MON_A1H
|
||
lda #$af
|
||
sta PATH,x
|
||
L30B1 lda L1C00
|
||
sta MON_A2L
|
||
ldy #$00
|
||
inx
|
||
L30B9 lda L1C01,y
|
||
sta PATH,x
|
||
iny
|
||
inx
|
||
dec MON_A2L
|
||
bne L30B9
|
||
lda MON_A1H
|
||
sta PATH_LEN
|
||
ldx #$0a
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$0a
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
lda #$bf
|
||
jsr MON_COUT
|
||
ldy #$00
|
||
ldx PATH_LEN
|
||
L30E8 lda PATH,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L30E8
|
||
jsr L4674
|
||
bcc L3101
|
||
jsr L46AD
|
||
pla
|
||
pla
|
||
pla
|
||
pla
|
||
jmp L2197
|
||
|
||
L3101 pla
|
||
pla
|
||
jmp CHK_VALID_FT
|
||
|
||
L3106 cmp #$04
|
||
beq L3115
|
||
cmp #$02
|
||
beq L3115
|
||
cmp #$01
|
||
beq L3115
|
||
jmp L3038
|
||
|
||
L3115 jmp @GOOD_RET
|
||
|
||
L3118 lda #$00
|
||
sta L0F02
|
||
lda #$0a
|
||
sta L0F02+1
|
||
lda P8_DEVNUM
|
||
sta L0F01
|
||
lda #$11
|
||
ldx #$00
|
||
jsr L3166
|
||
jsr L4643
|
||
beq L313C
|
||
L3134 jsr L46AD
|
||
pla
|
||
pla
|
||
jmp L2136
|
||
|
||
L313C lda $0a01
|
||
ldx $0a02
|
||
beq L3156
|
||
jsr L3166
|
||
jsr L4643
|
||
bne L3134
|
||
lda L1BC3
|
||
beq L3154
|
||
jsr L3158
|
||
L3154 clc
|
||
rts
|
||
|
||
L3156 sec
|
||
rts
|
||
|
||
L3158 ldy #$ff
|
||
L315A lda (PTR),y
|
||
sta (PTR2),y
|
||
dey
|
||
bne L315A
|
||
lda (PTR),y
|
||
sta (PTR2),y
|
||
rts
|
||
|
||
L3166 clc
|
||
ldy #$00
|
||
sty L0F04
|
||
sty L0F04+1
|
||
sta L0F04
|
||
rol L0F04
|
||
rol L0F04+1
|
||
rol L0F04
|
||
rol L0F04+1
|
||
rol L0F04
|
||
rol L0F04+1
|
||
lda L0F5D,x
|
||
clc
|
||
adc L0F04
|
||
sta L0F04
|
||
lda L0F04+1
|
||
adc #$00
|
||
sta L0F04+1
|
||
ldy L0F6D,x
|
||
dey
|
||
sty L1BC3
|
||
lda L0F02
|
||
sta PTR
|
||
sta PTR2
|
||
lda L0F02+1
|
||
sta PTR+1
|
||
sta PTR2+1
|
||
inc PTR+1
|
||
rts
|
||
|
||
PRDEC_AX ldy #‘ ’ | $80
|
||
sty PRDEC_PADDING
|
||
sta PRDEC_NUMBER_HIGH
|
||
stx PRDEC_NUMBER_LOW
|
||
ldx #$04
|
||
jmp PRINT_DECIMAL
|
||
|
||
INIT_V5_2345 pha
|
||
tya
|
||
pha
|
||
ldy #$03
|
||
lda #$ff
|
||
L31C5 sta CSUM_V5_2,y
|
||
dey
|
||
bpl L31C5
|
||
pla
|
||
tay
|
||
pla
|
||
rts
|
||
|
||
INIT_V5_6789 pha
|
||
tya
|
||
pha
|
||
ldy #$03
|
||
lda #$ff
|
||
L31D6 sta CSUM_V5_6,y
|
||
dey
|
||
bpl L31D6
|
||
pla
|
||
tay
|
||
pla
|
||
rts
|
||
|
||
RUN_V5_CHECKSUM pha
|
||
txa
|
||
pha
|
||
tya
|
||
pha
|
||
lda CHAR_READ
|
||
ldy PD_C4_FILETYPE
|
||
ldx OS_SELECTION
|
||
beq @PRODOS ;0=ProDOS?
|
||
cpy #$02 ;DOS and Applesoft=2
|
||
beq @APPLESOFT
|
||
bne @DO_CHKSUM ;Binary?!
|
||
|
||
@PRODOS cpy #$fc ;Applesoft
|
||
bne @DO_CHKSUM
|
||
@APPLESOFT ldx LINE_BYTES_READ
|
||
beq @DO_CHKSUM
|
||
cmp #$60 ;Make all text uppercase ($60='a' and end is $7F)
|
||
bcc @DO_CHKSUM
|
||
cmp #$80
|
||
bcs @DO_CHKSUM
|
||
sec
|
||
sbc #$20 ;Uppercase char
|
||
@DO_CHKSUM sta TEMP_DATA
|
||
lda CSUM_V5_2
|
||
sta CSUM_V5_1
|
||
lda CSUM_V5_3
|
||
sta CSUM_V5_2
|
||
lda CSUM_V5_4
|
||
sta CSUM_V5_3
|
||
lda CSUM_V5_5
|
||
sta CSUM_V5_4
|
||
lda #$00
|
||
sta CSUM_V5_5
|
||
lda CSUM_V5_1
|
||
eor TEMP_DATA
|
||
tay
|
||
lda CSUM_V5_2
|
||
eor KEY_TABLE_1,y
|
||
sta CSUM_V5_2
|
||
lda CSUM_V5_3
|
||
eor KEY_TABLE_2,y
|
||
sta CSUM_V5_3
|
||
lda CSUM_V5_4
|
||
eor KEY_TABLE_3,y
|
||
sta CSUM_V5_4
|
||
lda CSUM_V5_5
|
||
eor KEY_TABLE_4,y
|
||
sta CSUM_V5_5
|
||
lda CSUM_V5_6
|
||
sta CSUM_V5_1
|
||
lda CSUM_V5_7
|
||
sta CSUM_V5_6
|
||
lda CSUM_V5_8
|
||
sta CSUM_V5_7
|
||
lda CSUM_V5_9
|
||
sta CSUM_V5_8
|
||
lda #$00
|
||
sta CSUM_V5_9
|
||
lda CSUM_V5_1
|
||
eor TEMP_DATA
|
||
tay
|
||
lda CSUM_V5_6
|
||
eor KEY_TABLE_1,y
|
||
sta CSUM_V5_6
|
||
lda CSUM_V5_7
|
||
eor KEY_TABLE_2,y
|
||
sta CSUM_V5_7
|
||
lda CSUM_V5_8
|
||
eor KEY_TABLE_3,y
|
||
sta CSUM_V5_8
|
||
lda CSUM_V5_9
|
||
eor KEY_TABLE_4,y
|
||
sta CSUM_V5_9
|
||
pla
|
||
tay
|
||
pla
|
||
tax
|
||
pla
|
||
rts
|
||
|
||
MEMSCAN ldy #$07
|
||
@CHECK lda P8_MEMTABL+16,y ;Find highest address in$8000-$BFFF that is free
|
||
beq CALC_HIMEM
|
||
dey
|
||
bpl @CHECK
|
||
jsr L2759
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INSUFFMEM
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ABORTING
|
||
|
||
jsr L276B
|
||
jmp PGM_QUIT
|
||
|
||
CALC_HIMEM lda #$78
|
||
L32C2 clc
|
||
adc #$08
|
||
dey
|
||
bpl L32C2
|
||
sta HIMEM2?
|
||
sta HIMEM3?
|
||
clc
|
||
adc #$04
|
||
sta HIMEM1?
|
||
lda #$51
|
||
lsr A
|
||
bcc L32E5
|
||
lda HIMEM3?
|
||
lsr A
|
||
bcs L32EE
|
||
dec HIMEM3?
|
||
jmp L32EE
|
||
|
||
L32E5 lda HIMEM3?
|
||
lsr A
|
||
bcc L32EE
|
||
dec HIMEM3?
|
||
L32EE lda HIMEM3?
|
||
sta HIMEM4?
|
||
rts
|
||
|
||
L32F5 lda MENU_SELECTION
|
||
bne L3304
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3304 ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_V5
|
||
jsr MON_CLREOL
|
||
lda KP_VER_FLAG
|
||
cmp #$02
|
||
bne L3326
|
||
ldx #$0c
|
||
ldy #$11
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CURRENT
|
||
L3326 lda MENU_SELECTION
|
||
cmp #$01
|
||
bne L3337
|
||
ldx #$0d
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3337 ldx #$0d
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_V4
|
||
jsr MON_CLREOL
|
||
lda KP_VER_FLAG
|
||
bne L3357
|
||
ldx #$0d
|
||
ldy #$11
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CURRENT
|
||
L3357 lda MENU_SELECTION
|
||
cmp #$02
|
||
bne L3368
|
||
ldx #$0e
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3368 ldx #$0e
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_BOTH
|
||
jsr MON_CLREOL
|
||
lda KP_VER_FLAG
|
||
bpl L3388
|
||
ldx #$0e
|
||
ldy #$11
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_CURRENT
|
||
L3388 ldx #$17
|
||
ldy #$26
|
||
jsr GOTOXY
|
||
rts
|
||
|
||
L3390 lda #$00
|
||
sta MENU_SELECTION
|
||
lda KP_VER_FLAG
|
||
beq L33A2
|
||
bmi L339F
|
||
jmp L33A5
|
||
|
||
L339F inc MENU_SELECTION
|
||
L33A2 inc MENU_SELECTION
|
||
L33A5 jsr PRINT_MENU_FOOTER
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$0a
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_OUT_FMT
|
||
L33C3 jsr L32F5
|
||
lda KBDSTRB
|
||
lda #$a0
|
||
jsr MON_KEYIN
|
||
cmp #$8b
|
||
beq L33D6
|
||
cmp #$88
|
||
bne L33E3
|
||
L33D6 dec MENU_SELECTION
|
||
bpl L33C3
|
||
lda #$02
|
||
sta MENU_SELECTION
|
||
jmp L33C3
|
||
|
||
L33E3 cmp #$8a
|
||
beq L33EB
|
||
cmp #$95
|
||
bne L33FD
|
||
L33EB inc MENU_SELECTION
|
||
lda MENU_SELECTION
|
||
cmp #$03
|
||
bcc L33C3
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
jmp L33C3
|
||
|
||
L33FD cmp #$9b
|
||
bne L3404
|
||
jmp L3910
|
||
|
||
L3404 cmp #$8d
|
||
bne L33C3
|
||
lda MENU_SELECTION
|
||
cmp #$01
|
||
beq L3415
|
||
bcs L3419
|
||
lda #$b6
|
||
bne L341B
|
||
|
||
L3415 lda #$b4
|
||
bne L341B
|
||
|
||
L3419 lda #$c2
|
||
L341B sta L1055
|
||
and #$0f
|
||
sec
|
||
sbc #$04
|
||
sta KP_VER_FLAG
|
||
jsr L32F5
|
||
ldx #$08
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
asl A
|
||
inc A
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L3454
|
||
jmp L3910
|
||
|
||
L3454 jmp L3390
|
||
|
||
RESET_VALUES? lda #$00
|
||
sta L0F02
|
||
lda #$0a
|
||
sta L0F02+1
|
||
lda #$15
|
||
sta L0F07
|
||
lda #$1b
|
||
sta L0F07+1
|
||
lda #$00
|
||
sta L0F10
|
||
lda #$08
|
||
sta L0F10+1
|
||
lda #$15
|
||
sta L0F13
|
||
lda #$1b
|
||
sta L0F13+1
|
||
lda #$00
|
||
sta L0F17
|
||
lda #$08
|
||
sta L0F17+1
|
||
lda #$15
|
||
sta PD_C4_PATH_ADDR
|
||
lda #$1b
|
||
sta PD_C4_PATH_ADDR+1
|
||
lda #$00
|
||
sta L0F44
|
||
lda #$08
|
||
sta L0F44+1
|
||
lda #$60
|
||
sta L0F01
|
||
lda #$00
|
||
sta L0F04
|
||
sta L0F09
|
||
sta L0F09+1
|
||
sta L0F0B
|
||
sta PD_CC_REFNUM
|
||
sta L0F0F
|
||
sta L0F16
|
||
sta L0F43
|
||
sta L0F46
|
||
sta L0F46+1
|
||
sta L0F48
|
||
sta L0F48+1
|
||
sta L0F4C
|
||
sta L0F4C+1
|
||
sta L0F4C+2
|
||
sta L10EA
|
||
lda #$c0
|
||
sta L10EB
|
||
rts
|
||
|
||
L34DA ldx L1088
|
||
lda #$00
|
||
L34DF sta FLAG_SUBMIT,x
|
||
dex
|
||
bpl L34DF
|
||
rts
|
||
|
||
ASK_ACT_SUBMIT lda #$00
|
||
sta FLAG_SUBMIT
|
||
jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$07
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ACT_SUBMIT
|
||
L34FA jsr MON_RDKEY
|
||
cmp #‘Y’ | $80
|
||
beq L3511
|
||
cmp #‘y’ | $80
|
||
beq L3511
|
||
cmp #‘N’ | $80
|
||
beq L350D
|
||
cmp #‘n’ | $80
|
||
bne L34FA
|
||
L350D jsr CLEAR_PAGE
|
||
rts
|
||
|
||
L3511 lda #$01
|
||
sta FLAG_SUBMIT
|
||
jsr L351A
|
||
rts
|
||
|
||
L351A lda #$b1
|
||
sta L10F0
|
||
sta L1083
|
||
lda #$00
|
||
sta L1082
|
||
lda #$89
|
||
sta L105A
|
||
lda #$b8
|
||
sta L105B
|
||
lda #$b0
|
||
sta L105C
|
||
lda #$ce
|
||
sta L105D
|
||
lda #$a0
|
||
sta L105E
|
||
lda #$04
|
||
sta L1059
|
||
lda #$8c
|
||
sta L10F1
|
||
lda #$01
|
||
sta KP_VER_FLAG
|
||
lda #$00
|
||
sta L1057
|
||
rts
|
||
|
||
L3555 lda L10F0
|
||
and #$0f
|
||
beq L3580
|
||
ora L10EB
|
||
sta MON_CSWH
|
||
lda L10EA
|
||
sta MON_CSWL
|
||
inc L1052
|
||
lda L1059
|
||
beq L357F
|
||
tax
|
||
dex
|
||
ldy #$00
|
||
L3572 lda L105A,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bpl L3572
|
||
jsr MON_CROUT
|
||
L357F rts
|
||
|
||
L3580 jsr MON_SETVID
|
||
jsr MON_SETKBD
|
||
lda #$00
|
||
sta L1052
|
||
rts
|
||
|
||
PRDEC_BYTE lda #$00
|
||
ldy #‘0’ | $80
|
||
sty PRDEC_PADDING
|
||
sta PRDEC_NUMBER_HIGH
|
||
stx PRDEC_NUMBER_LOW
|
||
ldx #$01
|
||
PRINT_DECIMAL stx PRDEC_NUM_DIGITS
|
||
@NEXTDIGIT lda #‘0’ | $80
|
||
sta PRDEC_CURR_DIGIT
|
||
@SUBLOOP lda PRDEC_NUMBER_LOW
|
||
cmp TENS_LOW,x
|
||
lda PRDEC_NUMBER_HIGH
|
||
sbc TENS_HIGH,x
|
||
bcc @SUBDONE
|
||
sta PRDEC_NUMBER_HIGH
|
||
lda PRDEC_NUMBER_LOW
|
||
sbc TENS_LOW,x
|
||
sta PRDEC_NUMBER_LOW
|
||
inc PRDEC_CURR_DIGIT
|
||
bne @SUBLOOP
|
||
@SUBDONE lda PRDEC_CURR_DIGIT
|
||
inx
|
||
dex
|
||
beq @LASTDIGIT
|
||
cmp #‘0’ | $80
|
||
beq @SKIPLEADING0
|
||
sta PRDEC_NUM_DIGITS
|
||
@SKIPLEADING0 bit PRDEC_NUM_DIGITS
|
||
bmi @LASTDIGIT
|
||
lda PRDEC_PADDING
|
||
cmp #‘@’ | $80
|
||
beq @DONTPRINT
|
||
@LASTDIGIT jsr MON_COUT
|
||
@DONTPRINT dex
|
||
bpl @NEXTDIGIT
|
||
rts
|
||
|
||
L35E3 jsr CLEAR_PAGE
|
||
ldx #$16
|
||
ldy #$04
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_REINSERT_KP_DISK
|
||
jsr PROMPT_CONTINUE
|
||
rts
|
||
|
||
L35F6 lda L1C89
|
||
beq L3601
|
||
jsr L35E3
|
||
jsr PRINT_MENU_FOOTER
|
||
L3601 ldx L10F2
|
||
stx L1C00
|
||
ldy #$00
|
||
L3609 lda L1695,y
|
||
sta L1C01,y
|
||
iny
|
||
dex
|
||
bne L3609
|
||
lda #$00
|
||
sta L0F07
|
||
lda #$1c
|
||
sta L0F07+1
|
||
lda HIMEM2?
|
||
sta L0F09+1
|
||
jsr L4658
|
||
beq L362A
|
||
sec
|
||
rts
|
||
|
||
L362A lda L0F0B
|
||
sta L0F43
|
||
lda #$00
|
||
sta L0F44
|
||
lda #$08
|
||
sta L0F44+1
|
||
lda #$00
|
||
sta L0F46
|
||
lda #$01
|
||
sta L0F46+1
|
||
jsr L464A
|
||
beq L3653
|
||
lda #$00
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
sec
|
||
rts
|
||
|
||
L3653 lda #$00
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
ldx L107D
|
||
L365E lda $0800,x
|
||
sta LOWER_MASK?,x
|
||
dex
|
||
bpl L365E
|
||
rts
|
||
|
||
L3668 jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SAVE_DEFAULTS
|
||
|
||
ldx #$0c
|
||
ldy #$09
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 L19CF
|
||
|
||
lda #$a0
|
||
jsr MON_RDKEY
|
||
cmp #$9b
|
||
bne L369E
|
||
L369B jmp L3910
|
||
|
||
L369E cmp #$ce
|
||
beq L369B
|
||
cmp #$ee
|
||
beq L369B
|
||
cmp #$d9
|
||
beq L36AE
|
||
cmp #$f9
|
||
bne L3668
|
||
L36AE lda L1C89
|
||
beq L36B6
|
||
jsr L35E3
|
||
L36B6 ldx L10F2
|
||
stx L1C00
|
||
ldy #$00
|
||
L36BE lda L1695,y
|
||
sta L1C01,y
|
||
iny
|
||
dex
|
||
bne L36BE
|
||
jsr L4635
|
||
beq L36D7
|
||
cmp #$46
|
||
beq L36D7
|
||
jsr L46AD
|
||
jmp L3910
|
||
|
||
L36D7 jsr L463C
|
||
beq L36E2
|
||
jsr L46AD
|
||
jmp L3910
|
||
|
||
L36E2 lda #$00
|
||
sta L0F07
|
||
lda #$1c
|
||
sta L0F07+1
|
||
lda HIMEM2?
|
||
sta L0F09+1
|
||
jsr L4658
|
||
beq L36FD
|
||
jsr L46AD
|
||
jmp L3910
|
||
|
||
L36FD lda L0F0B
|
||
sta L0F3B
|
||
lda L107D
|
||
sta L0F3E
|
||
inc L0F3E
|
||
ldx L107D
|
||
L370F lda LOWER_MASK?,x
|
||
sta $0800,x
|
||
dex
|
||
bpl L370F
|
||
jsr L462E
|
||
beq L3720
|
||
jsr L46AD
|
||
L3720 lda #$00
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
jmp L3910
|
||
|
||
SHOW_MENU lda MENU_SELECTION
|
||
bne L373A
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L373A ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_GEN_CHKCODE
|
||
lda MENU_SELECTION
|
||
cmp #$01
|
||
bne L3757
|
||
ldx #$0d
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3757 ldx #$0d
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_SET_DEFAULTS
|
||
|
||
lda MENU_SELECTION
|
||
cmp #$02
|
||
bne L3774
|
||
ldx #$0e
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3774 ldx #$0e
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_QUIT
|
||
|
||
ldx #$17
|
||
ldy #$26
|
||
jsr GOTOXY
|
||
rts
|
||
|
||
DO_MENU_SELECT lda #$00
|
||
sta MENU_SELECTION
|
||
jsr PRINT_MENU_FOOTER
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$0a
|
||
ldy #$0e
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_MAIN_MENU
|
||
|
||
@GETSELECT jsr SHOW_MENU
|
||
lda KBDSTRB
|
||
lda #‘ ’ | $80
|
||
jsr MON_KEYIN
|
||
cmp #KEY_UP_ARROW ;Up arrow
|
||
beq @ISUP
|
||
cmp #KEY_LEFT_ARROW ;Left arrow
|
||
bne @CHKDOWN
|
||
@ISUP dec MENU_SELECTION
|
||
bpl @GETSELECT
|
||
lda #$02
|
||
sta MENU_SELECTION
|
||
jmp @GETSELECT
|
||
|
||
@CHKDOWN cmp #KEY_DOWN_ARROW ;Down arrow
|
||
beq ISDOWN
|
||
cmp #KEY_RIGHT_ARROW ;Right arrow
|
||
bne @CHKSELECT
|
||
ISDOWN inc MENU_SELECTION
|
||
lda MENU_SELECTION
|
||
cmp #$03
|
||
bcc @GETSELECT
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
jmp @GETSELECT
|
||
|
||
@CHKSELECT cmp #KEY_CR ;CR
|
||
bne @GETSELECT
|
||
lda MENU_SELECTION
|
||
beq @RETURN ;=Generate checkcode
|
||
cmp #$01
|
||
bne @QUIT ;=Quit
|
||
jsr L3910 ;=Set defaults
|
||
jmp DO_MENU_SELECT
|
||
|
||
@QUIT jmp PGM_QUIT
|
||
|
||
@RETURN rts
|
||
|
||
DRAW_ARROW lda MON_CV
|
||
sta TEMP_XREG
|
||
lda MON_CH
|
||
sta TEMP_YREG
|
||
ldx #$14
|
||
@ERASE ldy #$02
|
||
jsr GOTOXY
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
dex
|
||
cpx #$09
|
||
bne @ERASE
|
||
ldx TEMP_XREG
|
||
ldy TEMP_YREG
|
||
jsr GOTOXY
|
||
lda #‘-’ | $80
|
||
jsr MON_COUT
|
||
lda #‘>’ | $80
|
||
jsr MON_COUT
|
||
rts
|
||
|
||
L3822 lda MENU_SELECTION
|
||
bne L3831
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3831 ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_VIEW_DEFAULTS
|
||
|
||
lda MENU_SELECTION
|
||
cmp #$01
|
||
bne L384E
|
||
ldx #$0d
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L384E ldx #$0d
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_OUT_LOC
|
||
lda MENU_SELECTION
|
||
cmp #$02
|
||
bne L386B
|
||
ldx #$0e
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L386B ldx #$0e
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_LP_DEFAULTS
|
||
lda MENU_SELECTION
|
||
cmp #$03
|
||
bne L3888
|
||
ldx #$0f
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L3888 ldx #$0f
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_DOS_SD
|
||
lda MENU_SELECTION
|
||
cmp #$04
|
||
bne L38A5
|
||
ldx #$10
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L38A5 ldx #$10
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_OUT_FMT
|
||
lda MENU_SELECTION
|
||
cmp #$05
|
||
bne L38C2
|
||
ldx #$11
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L38C2 ldx #$11
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ASOFT_CNTRL_LIST
|
||
|
||
lda MENU_SELECTION
|
||
cmp #$06
|
||
bne L38DF
|
||
ldx #$12
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L38DF ldx #$12
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SAVE_DEFAULTS
|
||
|
||
lda MENU_SELECTION
|
||
cmp #$07
|
||
bne L38FC
|
||
ldx #$13
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L38FC ldx #$13
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RESET_DEFAULTS
|
||
ldx #$17
|
||
ldy #$26
|
||
jsr GOTOXY
|
||
rts
|
||
|
||
L3910 jsr MENU_CLEAR_PANE
|
||
jsr PRINT_MENU_FOOTER
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_MAIN_MENU
|
||
ldx #$0a
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
lsr $18
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
L3933 jsr L3822
|
||
lda KBDSTRB
|
||
lda #$a0
|
||
jsr MON_KEYIN
|
||
cmp #$8b
|
||
beq L3946
|
||
cmp #$88
|
||
bne L3953
|
||
L3946 dec MENU_SELECTION
|
||
bpl L3933
|
||
lda #$07
|
||
sta MENU_SELECTION
|
||
jmp L3933
|
||
|
||
L3953 cmp #$8a
|
||
beq L395B
|
||
cmp #$95
|
||
bne L396D
|
||
L395B inc MENU_SELECTION
|
||
lda MENU_SELECTION
|
||
cmp #$08
|
||
bcc L3933
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
jmp L3933
|
||
|
||
L396D cmp #$8d
|
||
beq L3976
|
||
cmp #$9b
|
||
bne L3933
|
||
rts
|
||
|
||
L3976 lda MENU_SELECTION
|
||
asl A
|
||
tax
|
||
lda L0F9B,x
|
||
sta MON_A1L
|
||
lda L0F9C,x
|
||
sta MON_A1H
|
||
jmp (MON_A1L)
|
||
|
||
PRINT_MENU_FOOTER ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 MENU_FOOTER1
|
||
|
||
jsr MON_CROUT
|
||
jsr PRINT_IND
|
||
.dd2 MENU_FOOTER2
|
||
|
||
rts
|
||
|
||
MENU_CLEAR_PANE ldx #$07
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
ldx #$0d
|
||
@LOOP jsr MON_CLREOL
|
||
jsr MON_CROUT
|
||
dex
|
||
bpl @LOOP
|
||
rts
|
||
|
||
CLEAR_PAGE ldx #$15
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_DASH_LINE
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
rts
|
||
|
||
L39CF lda MENU_SELECTION
|
||
bne L39DE
|
||
ldx #$0c
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L39DE ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_GET_DFLTS_DISK
|
||
|
||
lda MENU_SELECTION
|
||
cmp #$01
|
||
bne L39FB
|
||
ldx #$0d
|
||
ldy #$02
|
||
jsr GOTOXY
|
||
jsr DRAW_ARROW
|
||
L39FB ldx #$0d
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_GET_SYS_DFLTS
|
||
ldx #$17
|
||
ldy #$26
|
||
jsr GOTOXY
|
||
rts
|
||
|
||
L3A0F lda #$00
|
||
sta MENU_SELECTION
|
||
jsr PRINT_MENU_FOOTER
|
||
jsr MENU_CLEAR_PANE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$0c
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RESET_DEFAULTS
|
||
L3A32 jsr L39CF
|
||
lda KBDSTRB
|
||
lda #$a0
|
||
jsr MON_KEYIN
|
||
cmp #$8b
|
||
beq L3A45
|
||
cmp #$88
|
||
bne L3A52
|
||
L3A45 dec MENU_SELECTION
|
||
bpl L3A32
|
||
lda #$01
|
||
sta MENU_SELECTION
|
||
jmp L3A32
|
||
|
||
L3A52 cmp #$8a
|
||
beq L3A5A
|
||
cmp #$95
|
||
bne L3A6C
|
||
L3A5A inc MENU_SELECTION
|
||
lda MENU_SELECTION
|
||
cmp #$02
|
||
bcc L3A32
|
||
lda #$00
|
||
sta MENU_SELECTION
|
||
jmp L3A32
|
||
|
||
L3A6C cmp #$9b
|
||
bne L3A73
|
||
jmp L3910
|
||
|
||
L3A73 cmp #$8d
|
||
bne L3A32
|
||
ldx #$08
|
||
jsr CLEAR_LINE
|
||
lda MENU_SELECTION
|
||
bne L3ABA
|
||
jsr L35F6
|
||
bcc L3A8C
|
||
jsr L46AD
|
||
jmp L3A0F
|
||
|
||
L3A8C ldx #$08
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
inc ALLOW_ESC
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr PROMPT_CONTINUE
|
||
bcs L3AB7
|
||
jmp L3910
|
||
|
||
L3AB7 jmp L3A0F
|
||
|
||
L3ABA jsr COPY_DEFAULTS?
|
||
jmp L3A8C
|
||
|
||
COPY_DEFAULTS? ldx DEFAULTS_LENGTH
|
||
@COPY lda DEFAULT_VALUES,x
|
||
sta L1050,x
|
||
dex
|
||
bpl @COPY
|
||
rts
|
||
|
||
L3ACD jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$06
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_DOS_SD
|
||
lda L1050
|
||
sta L1B0D
|
||
lda L1051
|
||
sta L1B0E
|
||
jsr L2693
|
||
bcc L3AFE
|
||
bcs L3B2D
|
||
|
||
L3AFE jsr L26E1
|
||
bcs L3B2D
|
||
lda L1B0D
|
||
sta L1050
|
||
lda L1B0E
|
||
sta L1051
|
||
ldx #$08
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L3ACD
|
||
L3B2D jmp L3910
|
||
|
||
L3B30 jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$09
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SET_OUT_LOC
|
||
ldx #$0c
|
||
ldy #$05
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_OUTPUT_LP
|
||
jsr MON_RDKEY
|
||
pha
|
||
jsr MON_COUT
|
||
pla
|
||
cmp #$9b
|
||
beq L3BA6
|
||
cmp #$d9
|
||
beq L3BAC
|
||
cmp #$f9
|
||
beq L3BAC
|
||
cmp #$ce
|
||
beq L3B76
|
||
cmp #$ee
|
||
bne L3B30
|
||
L3B76 lda #$b0
|
||
L3B78 sta L1053
|
||
sta L10F0
|
||
ldx #$08
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
inc ALLOW_ESC
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr PROMPT_CONTINUE
|
||
bcs L3BA9
|
||
L3BA6 jmp L3910
|
||
|
||
L3BA9 jmp L3B30
|
||
|
||
L3BAC lda L1054
|
||
and #$0f
|
||
beq L3BB8
|
||
lda L1054
|
||
bne L3B78
|
||
L3BB8 lda #$b1
|
||
bne L3B78
|
||
|
||
CHECK_LOWERCASE lda PREVENT_DOUBLE?
|
||
bne @EXIT
|
||
lda #$01
|
||
sta PREVENT_DOUBLE?
|
||
lda LOWER_MASK?
|
||
cmp #$df
|
||
bne @EXIT
|
||
ldx #$0a
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_HAS_LOWERCASE
|
||
|
||
@AGAIN jsr MON_RDKEY
|
||
cmp #‘N’ | $80
|
||
beq @EXIT
|
||
cmp #‘n’ | $80
|
||
beq @EXIT
|
||
cmp #‘Y’ | $80
|
||
beq @ENABLE
|
||
cmp #‘y’ | $80
|
||
bne @AGAIN
|
||
@ENABLE lda #$ff
|
||
sta LOWER_MASK?
|
||
lda #$00
|
||
sta MON_WNDTOP
|
||
jsr PRINT_HEADER
|
||
@EXIT rts
|
||
|
||
L3BF9 asl A
|
||
asl A
|
||
asl A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
sta L1B08
|
||
lda L1B0C
|
||
ror A
|
||
lda L1B0B
|
||
ror A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
sta L1B09
|
||
lda L1B0C
|
||
lsr A
|
||
sta L1B0A
|
||
rts
|
||
|
||
L3C19 ldx L1B08
|
||
beq L3C38
|
||
jsr PRDEC_BYTE
|
||
lda #$ad
|
||
jsr MON_COUT
|
||
lda L1B09
|
||
jsr L3C3E
|
||
lda #$ad
|
||
jsr MON_COUT
|
||
ldx L1B0A
|
||
jsr PRDEC_BYTE
|
||
rts
|
||
|
||
L3C38 jsr PRINT_IND
|
||
.dd2 TXT_NO_DATE
|
||
|
||
rts
|
||
|
||
L3C3E sec
|
||
sbc #$01
|
||
asl A
|
||
asl A
|
||
tay
|
||
ldx #$02
|
||
L3C46 lda MONTHS,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bpl L3C46
|
||
rts
|
||
|
||
HANDLE_SUBMIT lda L1081
|
||
bne L3CBC
|
||
jsr CLEAR_PAGE
|
||
jsr MENU_CLEAR_PANE
|
||
lda #$15
|
||
sta MON_WNDBTM
|
||
ldx #$07
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_SUBMIT_CMDS
|
||
jsr MON_CROUT
|
||
lda #$08
|
||
sta MON_WNDTOP
|
||
lda #$15
|
||
sta L0F07
|
||
lda #$1b
|
||
sta L0F07+1
|
||
lda L1C00
|
||
beq L3C8C
|
||
lda #$00
|
||
sta L0F07
|
||
lda #$1c
|
||
sta L0F07+1
|
||
L3C8C lda HIMEM2?
|
||
sta L0F09+1
|
||
jsr L4658
|
||
beq L3CA9
|
||
L3C97 sta CHAR_READ
|
||
jsr L34DA
|
||
lda CHAR_READ
|
||
jsr L46AD
|
||
ldx #$ff
|
||
txs
|
||
jmp L2136
|
||
|
||
L3CA9 lda #$01
|
||
sta L1081
|
||
lda L0F0B
|
||
sta L107F
|
||
sta L0F50
|
||
jsr L4651
|
||
bne L3C97
|
||
L3CBC lda L107F
|
||
sta L0F43
|
||
lda #$00
|
||
sta L0F44
|
||
lda #$0c
|
||
sta L0F44+1
|
||
lda #$00
|
||
sta L0F46
|
||
lda #$01
|
||
sta L0F46+1
|
||
L3CD6 jsr L464A
|
||
beq L3CDE
|
||
jsr L46AD
|
||
L3CDE ldx L0F48
|
||
ldy #$00
|
||
L3CE3 lda $0c00,y
|
||
ora #$80
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L3CE3
|
||
ldx #$00
|
||
L3CF1 ldy #$00
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp L1089,x
|
||
beq L3D13
|
||
bcc L3D08
|
||
L3CFF inx
|
||
inx
|
||
inx
|
||
inx
|
||
cpx L10B9
|
||
bcc L3CF1
|
||
L3D08 jsr L3FF6
|
||
jsr PRINT_IND
|
||
.dd2 ERR_UNK_SUBMIT
|
||
|
||
jmp L3FF7
|
||
|
||
L3D13 stx L1086
|
||
iny
|
||
inx
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp L1089,x
|
||
beq L3D28
|
||
L3D22 ldx L1086
|
||
jmp L3CFF
|
||
|
||
L3D28 iny
|
||
inx
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp L1089,x
|
||
bne L3D22
|
||
txa
|
||
lsr A
|
||
lsr A
|
||
sta L1086
|
||
L3D3A iny
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp #$ba
|
||
beq L3D4A
|
||
cmp #$bb
|
||
beq L3D4A
|
||
bne L3D3A
|
||
|
||
L3D4A iny
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp #$a0
|
||
beq L3D4A
|
||
sty L1084
|
||
lda L1086
|
||
beq L3D84
|
||
cmp #$02
|
||
bcc L3D87
|
||
beq L3D8A
|
||
cmp #$04
|
||
bcc L3D8D
|
||
beq L3D90
|
||
cmp #$06
|
||
bcc L3D93
|
||
beq L3D96
|
||
cmp #$08
|
||
bcc L3D99
|
||
beq L3D9C
|
||
cmp #$0a
|
||
bcc L3D9F
|
||
beq L3DA5
|
||
cmp #$0b
|
||
beq L3DA2
|
||
jsr L3FF6
|
||
jmp L3FF7
|
||
|
||
L3D84 jmp L3DA8
|
||
|
||
L3D87 jmp L3DD5
|
||
|
||
L3D8A jmp L3E0F
|
||
|
||
L3D8D jmp L3E30
|
||
|
||
L3D90 jmp L3E43
|
||
|
||
L3D93 jmp L3EEA
|
||
|
||
L3D96 jmp L3F1A
|
||
|
||
L3D99 jmp L3F4F
|
||
|
||
L3D9C jmp L3F8E
|
||
|
||
L3D9F jmp L3FA7
|
||
|
||
L3DA2 jmp L3FD2
|
||
|
||
L3DA5 jmp L3FF3
|
||
|
||
L3DA8 lda $0c00,y
|
||
ora #$80
|
||
cmp #$cf
|
||
beq L3DB4
|
||
jmp L3D08
|
||
|
||
L3DB4 iny
|
||
lda $0c00,y
|
||
ora #$80
|
||
cmp #$ce
|
||
beq L3DC5
|
||
cmp #$c6
|
||
beq L3DCD
|
||
jmp L3D08
|
||
|
||
L3DC5 lda #$01
|
||
sta L1057
|
||
jmp L3CD6
|
||
|
||
L3DCD lda #$00
|
||
sta L1057
|
||
jmp L3CD6
|
||
|
||
L3DD5 lda $0c00,y
|
||
ora #$80
|
||
cmp #$b3
|
||
beq L3DE9
|
||
cmp #$d0
|
||
beq L3DFC
|
||
cmp #$f0
|
||
beq L3DFC
|
||
jmp L3D08
|
||
|
||
L3DE9 lda #$01
|
||
sta OS_SELECTION
|
||
sta L1082
|
||
lda L1087
|
||
ora #$01
|
||
sta L1087
|
||
jmp L3CD6
|
||
|
||
L3DFC lda #$00
|
||
sta OS_SELECTION
|
||
sta L1082
|
||
lda L1087
|
||
and #$fe
|
||
sta L1087
|
||
jmp L3CD6
|
||
|
||
L3E0F lda $0c00,y
|
||
ora #$80
|
||
cmp #$b1
|
||
beq L3E1F
|
||
cmp #$b2
|
||
beq L3E1F
|
||
jmp L3D08
|
||
|
||
L3E1F sta L1B07
|
||
sta L1051
|
||
lda L1087
|
||
ora #$02
|
||
sta L1087
|
||
jmp L3CD6
|
||
|
||
L3E30 lda #$18
|
||
sta MON_WNDBTM
|
||
jsr CLEAR_PAGE
|
||
jsr PROMPT_CONTINUE
|
||
jsr L34DA
|
||
ldx #$ff
|
||
txs
|
||
jmp L2136
|
||
|
||
L3E43 ldx #$00
|
||
L3E45 lda $0c00,y
|
||
ora #$80
|
||
cmp #$8d
|
||
beq L3E60
|
||
cmp #$e0
|
||
bcc L3E54
|
||
and #$de
|
||
L3E54 sta L1C01,x
|
||
iny
|
||
inx
|
||
cpx #$65
|
||
bcc L3E45
|
||
jmp L3D08
|
||
|
||
L3E60 stx L1C00
|
||
lda OS_SELECTION
|
||
beq L3E9D
|
||
lda L1087
|
||
cmp #$07
|
||
beq L3E7A
|
||
jsr L3FF6
|
||
jsr PRINT_IND
|
||
.dd2 ERR_SD_NOT_DEFINED
|
||
jmp L3FF7
|
||
|
||
L3E7A jsr L259F
|
||
lda #$01
|
||
sta L1BC4
|
||
jsr L4013
|
||
bcc L3EB5
|
||
jsr L3FF6
|
||
jsr PRINT_IND
|
||
.dd2 ERR_FILE_NOT_FOUND
|
||
jsr MON_CROUT
|
||
jsr PRINT_IND
|
||
.dd2 TXT_RET_CONTINUE
|
||
jsr MON_RDKEY
|
||
jmp L3CD6
|
||
|
||
L3E9D lda #$00
|
||
sta PD_C4_PATH_ADDR
|
||
lda #$1c
|
||
sta PD_C4_PATH_ADDR+1
|
||
jsr GET_FILE_INFO
|
||
beq L3EB5
|
||
jsr L46AD
|
||
ldx #$ff
|
||
txs
|
||
jmp L2136
|
||
|
||
L3EB5 jsr L43B9
|
||
jsr L4827
|
||
lda L1083
|
||
sta L10F0
|
||
jsr L3555
|
||
jsr L2891
|
||
jsr L2AD3
|
||
jsr L2BB8
|
||
jmp L21D0
|
||
|
||
L3ED0 lda L10F1
|
||
jsr MON_COUT
|
||
lda #$00
|
||
sta L10F0
|
||
jsr L3555
|
||
jsr RESET_BUFFERS
|
||
lda HIMEM4?
|
||
sta HIMEM3?
|
||
jmp L3CBC
|
||
|
||
L3EEA lda $0c00,y
|
||
ora #$80
|
||
cmp #$b4
|
||
beq L3F02
|
||
cmp #$b5
|
||
beq L3F0A
|
||
cmp #$c2
|
||
beq L3F12
|
||
cmp #$e2
|
||
beq L3F12
|
||
jmp L3D08
|
||
|
||
L3F02 lda #$00
|
||
sta KP_VER_FLAG
|
||
jmp L3CD6
|
||
|
||
L3F0A lda #$01
|
||
sta KP_VER_FLAG
|
||
jmp L3CD6
|
||
|
||
L3F12 lda #$ff
|
||
sta KP_VER_FLAG
|
||
jmp L3CD6
|
||
|
||
L3F1A ldx #$00
|
||
L3F1C lda $0c00,y
|
||
ora #$80
|
||
cmp #$8d
|
||
beq L3F49
|
||
cmp #$de
|
||
beq L3F3B
|
||
cmp #$e0
|
||
bcc L3F2F
|
||
and #$de
|
||
L3F2F sta L105A,x
|
||
L3F32 iny
|
||
inx
|
||
cpx #$1e
|
||
bcc L3F1C
|
||
jmp L3D08
|
||
|
||
L3F3B iny
|
||
lda $0c00,y
|
||
and #$1f
|
||
ora #$80
|
||
sta L105A,x
|
||
jmp L3F32
|
||
|
||
L3F49 stx L1059
|
||
jmp L3CD6
|
||
|
||
L3F4F lda $0c00,y
|
||
ora #$80
|
||
cmp #$de
|
||
beq L3F5F
|
||
cmp #$a4
|
||
beq L3F6D
|
||
jmp L3D08
|
||
|
||
L3F5F iny
|
||
lda $0c00,y
|
||
and #$1f
|
||
ora #$80
|
||
sta L10F1
|
||
jmp L3CD6
|
||
|
||
L3F6D iny
|
||
lda $0c00,y
|
||
asl A
|
||
asl A
|
||
asl A
|
||
asl A
|
||
sta L10F1
|
||
iny
|
||
lda $0c00,y
|
||
and #$0f
|
||
ora L10F1
|
||
lda L10F1
|
||
cmp #$20
|
||
bcc L3F8B
|
||
jmp L3D08
|
||
|
||
L3F8B jmp L3CD6
|
||
|
||
L3F8E lda $0c00,y
|
||
ora #$80
|
||
cmp #$b1
|
||
bcc L3FA4
|
||
cmp #$b8
|
||
bcs L3FA4
|
||
sta L10F0
|
||
sta L1083
|
||
jmp L3CD6
|
||
|
||
L3FA4 jmp L3D08
|
||
|
||
L3FA7 ldx #$00
|
||
L3FA9 lda $0c00,y
|
||
ora #$80
|
||
cmp #$8d
|
||
beq L3FC4
|
||
cmp #$e0
|
||
bcc L3FB8
|
||
and #$de
|
||
L3FB8 sta PATH,x
|
||
iny
|
||
inx
|
||
cpx #$65
|
||
bcc L3FA9
|
||
jmp L3D08
|
||
|
||
L3FC4 stx PATH_LEN
|
||
jsr L4674
|
||
beq L3FCF
|
||
jsr L46AD
|
||
L3FCF jmp L3CBC
|
||
|
||
L3FD2 lda $0c00,y
|
||
ora #$80
|
||
cmp #$b1
|
||
bcc L3FF0
|
||
cmp #$b8
|
||
bcs L3FF0
|
||
sta L1B06
|
||
sta L1050
|
||
lda L1087
|
||
ora #$04
|
||
sta L1087
|
||
jmp L3CD6
|
||
|
||
L3FF0 jmp L3D08
|
||
|
||
L3FF3 jmp PGM_QUIT
|
||
|
||
L3FF6 rts
|
||
|
||
L3FF7 ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_FATAL
|
||
jsr L2A9D
|
||
jmp START
|
||
|
||
L4013 jsr L3118
|
||
bcc L401B
|
||
jmp L412D
|
||
|
||
L401B lda #$00
|
||
sta $ec
|
||
lda #$0a
|
||
sta $ed
|
||
lda $ec
|
||
sta $ea
|
||
lda $ed
|
||
sta $eb
|
||
lda #$06
|
||
sta L1BC5
|
||
sta L1BC6
|
||
lda #$0b
|
||
sta $ea
|
||
lda L1BC4
|
||
beq L403F
|
||
jmp L412E
|
||
|
||
L403F ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
L4053 ldy #$00
|
||
lda ($ea),y
|
||
bne L405C
|
||
jmp L412D
|
||
|
||
L405C cmp #$ff
|
||
bne L4063
|
||
jmp L40F5
|
||
|
||
L4063 ldy #$02
|
||
lda ($ea),y
|
||
tax
|
||
and #$80
|
||
bne L4070
|
||
lda #$a0
|
||
bne L4072
|
||
|
||
L4070 lda #$aa
|
||
L4072 jsr MON_COUT
|
||
txa
|
||
and #$7f
|
||
tax
|
||
and #$f0
|
||
bne L4083
|
||
lda DOS_FILETYPE_LOW,x
|
||
jmp L408B
|
||
|
||
L4083 lsr A
|
||
lsr A
|
||
lsr A
|
||
lsr A
|
||
tax
|
||
lda DOS_FILETYPE_HIGH,x
|
||
L408B jsr MON_COUT
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
ldy #$21
|
||
lda ($ea),y
|
||
sta PRDEC_NUMBER_LOW
|
||
lda #$00
|
||
sta PRDEC_NUMBER_HIGH
|
||
lda #$a0
|
||
sta PRDEC_PADDING
|
||
ldx #$02
|
||
jsr PRINT_DECIMAL
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
ldx #$1e
|
||
ldy #$03
|
||
L40B2 lda ($ea),y
|
||
ora #$80
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L40B2
|
||
jsr MON_CROUT
|
||
dec L1BC6
|
||
bpl L40F5
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
lda #$16
|
||
lda #$06
|
||
sta L1BC6
|
||
lda #$a0
|
||
jsr MON_RDKEY
|
||
cmp #$8d
|
||
beq L40E1
|
||
bne L412D
|
||
|
||
L40E1 ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
L40F5 dec L1BC5
|
||
bpl L4102
|
||
lda $0a02
|
||
bne L410C
|
||
jmp L412D
|
||
|
||
L4102 clc
|
||
lda $ea
|
||
adc #$23
|
||
sta $ea
|
||
jmp L4053
|
||
|
||
L410C jsr L313C
|
||
bcs L412D
|
||
lda #$00
|
||
sta $ec
|
||
lda #$0a
|
||
sta $ed
|
||
lda $ec
|
||
sta $ea
|
||
lda $ed
|
||
sta $eb
|
||
lda #$0b
|
||
sta $ea
|
||
lda #$06
|
||
sta L1BC5
|
||
jmp L4053
|
||
|
||
L412D rts
|
||
|
||
L412E ldy #$1e
|
||
ldx L1C00
|
||
lda #$a0
|
||
L4135 sta L1C01,x
|
||
inx
|
||
dey
|
||
bpl L4135
|
||
L413C ldy #$00
|
||
lda ($ea),y
|
||
bne L4145
|
||
jmp L41D6
|
||
|
||
L4145 ldx #$00
|
||
ldy #$03
|
||
L4149 lda ($ea),y
|
||
cmp L1C01,x
|
||
beq L4153
|
||
jmp L419E
|
||
|
||
L4153 iny
|
||
inx
|
||
cpx #$1e
|
||
bne L4149
|
||
ldy #$02
|
||
lda ($ea),y
|
||
and #$7f
|
||
sta PD_C4_FILETYPE
|
||
jsr L3106
|
||
bcc L4168
|
||
rts
|
||
|
||
L4168 ldy #$21
|
||
lda ($ea),y
|
||
sta L1BCA
|
||
iny
|
||
lda ($ea),y
|
||
sta L1BCB
|
||
lda #$00
|
||
sta L0F02
|
||
lda #$08
|
||
sta L0F02+1
|
||
ldy #$00
|
||
lda ($ea),y
|
||
iny
|
||
pha
|
||
lda ($ea),y
|
||
tax
|
||
pla
|
||
jsr L3166
|
||
jsr L4643
|
||
beq L4194
|
||
jmp L3134
|
||
|
||
L4194 lda L1BC3
|
||
beq L419C
|
||
jsr L3158
|
||
L419C clc
|
||
rts
|
||
|
||
L419E dec L1BC5
|
||
bpl L41AB
|
||
lda $0a02
|
||
bne L41B5
|
||
jmp L41D6
|
||
|
||
L41AB clc
|
||
lda $ea
|
||
adc #$23
|
||
sta $ea
|
||
jmp L413C
|
||
|
||
L41B5 jsr L313C
|
||
bcs L41D6
|
||
lda #$00
|
||
sta $ec
|
||
lda #$0a
|
||
sta $ed
|
||
lda $ec
|
||
sta $ea
|
||
lda $ed
|
||
sta $eb
|
||
lda #$0b
|
||
sta $ea
|
||
lda #$06
|
||
sta L1BC5
|
||
jmp L413C
|
||
|
||
L41D6 ldx #$10
|
||
ldy #$0d
|
||
jsr L2759
|
||
jsr PRINT_IND
|
||
cmp #$14
|
||
jsr L276B
|
||
sec
|
||
rts
|
||
|
||
L41E7 lda HIMEM1?
|
||
sta L0F09+1
|
||
jsr L4658
|
||
beq L41FC
|
||
L41F2 jsr L46AD
|
||
pla
|
||
pla
|
||
pla
|
||
pla
|
||
jmp L2136
|
||
|
||
L41FC lda L0F0B
|
||
sta L0F43
|
||
lda #$00
|
||
sta L0F46
|
||
lda #$02
|
||
sta L0F46+1
|
||
jsr L464A
|
||
bne L41F2
|
||
ldy #$23
|
||
lda $0800,y
|
||
sta L1BB1
|
||
iny
|
||
lda $0800,y
|
||
sta L1BB2
|
||
iny
|
||
lda $0800,y
|
||
sta L1BB3
|
||
iny
|
||
lda $0800,y
|
||
sta L1BB4
|
||
lda #$02
|
||
sta L1BB5
|
||
lda #$00
|
||
sta L1BB6
|
||
sta L1BB7
|
||
lda #$04
|
||
clc
|
||
adc L1BB1
|
||
sta $ea
|
||
lda #$08
|
||
sta $eb
|
||
lda #$06
|
||
sta L1BC6
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
L4260 lda L1BB7
|
||
cmp L1BB4
|
||
beq L426A
|
||
bcs L4272
|
||
L426A lda L1BB6
|
||
cmp L1BB3
|
||
bcc L427C
|
||
L4272 lda L0F0B
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
rts
|
||
|
||
L427C ldy #$00
|
||
lda ($ea),y
|
||
bne L4285
|
||
jmp L4369
|
||
|
||
L4285 ldy #$1e
|
||
lda ($ea),y
|
||
and #$c3
|
||
eor #$c3
|
||
bne L4293
|
||
lda #$a0
|
||
bne L4295
|
||
|
||
L4293 lda #$aa
|
||
L4295 jsr MON_COUT
|
||
ldy #$00
|
||
lda ($ea),y
|
||
and #$0f
|
||
tax
|
||
ldy #$01
|
||
L42A1 lda ($ea),y
|
||
ora #$80
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bne L42A1
|
||
lda #$11
|
||
sta MON_CH
|
||
ldy #$10
|
||
lda ($ea),y
|
||
cmp #$12
|
||
bcs L42CA
|
||
asl A
|
||
asl A
|
||
tay
|
||
ldx #$03
|
||
L42BD lda PRODOS_FILE_TYPES1,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bpl L42BD
|
||
jmp L42ED
|
||
|
||
L42CA cmp #$f0
|
||
bcc L42E3
|
||
sec
|
||
sbc #$f0
|
||
asl A
|
||
asl A
|
||
tay
|
||
ldx #$03
|
||
L42D6 lda PRODOS_FILE_TYPES2,y
|
||
jsr MON_COUT
|
||
iny
|
||
dex
|
||
bpl L42D6
|
||
jmp L42ED
|
||
|
||
L42E3 tay
|
||
lda #$a4
|
||
jsr MON_COUT
|
||
tya
|
||
jsr MON_PRBYTE
|
||
L42ED lda #$16
|
||
sta MON_CH
|
||
ldy #$13
|
||
lda ($ea),y
|
||
sta PRDEC_NUMBER_LOW
|
||
iny
|
||
lda ($ea),y
|
||
sta PRDEC_NUMBER_HIGH
|
||
lda #$a0
|
||
sta PRDEC_PADDING
|
||
ldx #$05
|
||
jsr PRINT_DECIMAL
|
||
lda #$1e
|
||
sta MON_CH
|
||
ldy #$22
|
||
lda ($ea),y
|
||
sta L1B0C
|
||
dey
|
||
lda ($ea),y
|
||
sta L1B0B
|
||
jsr L3BF9
|
||
jsr L3C19
|
||
jsr MON_CROUT
|
||
dec L1BC6
|
||
bpl L4358
|
||
ldx #$16
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_PRESS_RET
|
||
lda #$06
|
||
sta L1BC6
|
||
lda #$a0
|
||
jsr MON_RDKEY
|
||
cmp #$8d
|
||
beq L4344
|
||
jmp L4272
|
||
|
||
L4344 ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$0e
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
L4358 sec
|
||
lda L1BB6
|
||
adc #$00
|
||
sta L1BB6
|
||
lda L1BB7
|
||
adc #$00
|
||
sta L1BB7
|
||
L4369 lda L1BB7
|
||
cmp L1BB4
|
||
beq L4373
|
||
bcs L437B
|
||
L4373 lda L1BB6
|
||
cmp L1BB3
|
||
bcc L437E
|
||
L437B jmp L4272
|
||
|
||
L437E lda L1BB2
|
||
cmp L1BB5
|
||
beq L439A
|
||
inc L1BB5
|
||
clc
|
||
lda $ea
|
||
adc L1BB1
|
||
sta $ea
|
||
lda $eb
|
||
adc #$00
|
||
sta $eb
|
||
jmp L4260
|
||
|
||
L439A jsr L464A
|
||
beq L43A9
|
||
jsr L46AD
|
||
pla
|
||
pla
|
||
pla
|
||
pla
|
||
jmp L2136
|
||
|
||
L43A9 lda #$01
|
||
sta L1BB5
|
||
lda #$04
|
||
sta $ea
|
||
lda #$08
|
||
sta $eb
|
||
jmp L4260
|
||
|
||
L43B9 lda L1057
|
||
beq L43E1
|
||
lda HIMEM3?
|
||
sec
|
||
sbc #$20
|
||
sta HIMEM3?
|
||
sta MON_A1H
|
||
lda #$00
|
||
sta MON_A1L
|
||
L43CD ldy #$ff
|
||
lda #$00
|
||
L43D1 sta (MON_A1L),y
|
||
dey
|
||
bne L43D1
|
||
sta (MON_A1L),y
|
||
inc MON_A1H
|
||
lda MON_A1H
|
||
cmp HIMEM4?
|
||
bne L43CD
|
||
L43E1 rts
|
||
|
||
L43E2 jsr MON_SAVE
|
||
lda L1057
|
||
beq @EXIT
|
||
lda OS_SELECTION
|
||
bne @IS_DOS
|
||
lda PD_C4_FILETYPE
|
||
cmp #$fc ;Applesoft filetype (ProDOS)
|
||
bne @EXIT
|
||
jsr L440A
|
||
jmp @EXIT
|
||
|
||
@IS_DOS lda PD_C4_FILETYPE
|
||
cmp #$02 ;Applesoft filetype
|
||
bne @EXIT
|
||
jsr L440A
|
||
@EXIT jsr MON_RESTORE
|
||
rts
|
||
|
||
L440A lda CHAR_READ
|
||
bne @NOT_EOS
|
||
rts
|
||
|
||
@NOT_EOS lda #$01
|
||
sta L1C87
|
||
ldx #$02
|
||
lda END_LINE_NBR
|
||
sta MON_A1L
|
||
lda END_LINE_NBR+1
|
||
sta MON_A1H
|
||
@LOOP lda MON_A1H
|
||
lsr A
|
||
sta MON_A1H
|
||
lda MON_A1L
|
||
ror A
|
||
sta MON_A1L
|
||
dex
|
||
bpl @LOOP
|
||
clc
|
||
lda HIMEM3?
|
||
adc MON_A1H
|
||
sta MON_A1H
|
||
lda END_LINE_NBR
|
||
and #$07
|
||
eor #$07
|
||
tax
|
||
lda #$00
|
||
sec
|
||
@LOOP2 rol A
|
||
dex
|
||
bpl @LOOP2
|
||
ldy #$00
|
||
ora (MON_A1L),y
|
||
sta (MON_A1L),y
|
||
rts
|
||
|
||
L444C lda L1057
|
||
bne L4452
|
||
rts
|
||
|
||
L4452 lda OS_SELECTION
|
||
bne L445F
|
||
lda PD_C4_FILETYPE
|
||
cmp #$fc
|
||
beq L4467
|
||
rts
|
||
|
||
L445F lda PD_C4_FILETYPE
|
||
cmp #$02
|
||
beq L4467
|
||
rts
|
||
|
||
L4467 lda L1C87
|
||
bne L446D
|
||
rts
|
||
|
||
L446D lda L10F0
|
||
cmp #$b0
|
||
bne L447E
|
||
lda #$04
|
||
sta MON_WNDTOP
|
||
jsr MON_HOME
|
||
jsr CLEAR_PAGE
|
||
L447E ldx #$04
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LINES_CTRLCODES
|
||
|
||
jsr MON_CROUT
|
||
lda L10F0
|
||
cmp #$b0
|
||
bne L4497
|
||
jsr MON_CROUT
|
||
L4497 lda #$00
|
||
sta L1C83
|
||
sta L1C84
|
||
sta MON_A1L
|
||
sta L1C85
|
||
sta L1C86
|
||
lda HIMEM3?
|
||
sta MON_A1H
|
||
L44AC ldy #$00
|
||
lda (MON_A1L),y
|
||
beq L451F
|
||
clc
|
||
rol A
|
||
bcc L44B9
|
||
jsr L454B
|
||
L44B9 jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44C3
|
||
jsr L454B
|
||
L44C3 jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44CD
|
||
jsr L454B
|
||
L44CD jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44D7
|
||
jsr L454B
|
||
L44D7 jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44E1
|
||
jsr L454B
|
||
L44E1 jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44EB
|
||
jsr L454B
|
||
L44EB jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44F5
|
||
jsr L454B
|
||
L44F5 jsr L4533
|
||
clc
|
||
rol A
|
||
bcc L44FF
|
||
jsr L454B
|
||
L44FF jsr L4533
|
||
L4502 clc
|
||
lda MON_A1L
|
||
adc #$01
|
||
sta MON_A1L
|
||
lda MON_A1H
|
||
adc #$00
|
||
sta MON_A1H
|
||
cmp HIMEM4?
|
||
bne L44AC
|
||
lda L10F0
|
||
cmp #$b0
|
||
beq L451E
|
||
jsr MON_CROUT
|
||
L451E rts
|
||
|
||
L451F clc
|
||
lda L1C83
|
||
adc #$08
|
||
sta L1C83
|
||
lda L1C84
|
||
adc #$00
|
||
sta L1C84
|
||
jmp L4502
|
||
|
||
L4533 jsr MON_SAVE
|
||
clc
|
||
lda L1C83
|
||
adc #$01
|
||
sta L1C83
|
||
lda L1C84
|
||
adc #$00
|
||
sta L1C84
|
||
jsr MON_RESTORE
|
||
rts
|
||
|
||
L454B jsr MON_SAVE
|
||
lda L1C85
|
||
cmp #$06
|
||
bcc L458A
|
||
lda #$00
|
||
sta L1C85
|
||
jsr MON_CROUT
|
||
lda L10F0
|
||
cmp #$b0
|
||
bne L458A
|
||
inc L1C86
|
||
lda L1C86
|
||
cmp #$0e
|
||
bne L458A
|
||
lda #$00
|
||
sta L1C86
|
||
jsr PROMPT_CONTINUE
|
||
ldx #$06
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
jsr CLEAR_PAGE
|
||
ldx #$06
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
L458A lda L1C84
|
||
ldx L1C83
|
||
ldy #$a0
|
||
sty PRDEC_PADDING
|
||
sta PRDEC_NUMBER_HIGH
|
||
stx PRDEC_NUMBER_LOW
|
||
ldx #$04
|
||
jsr PRINT_DECIMAL
|
||
inc L1C85
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_RESTORE
|
||
rts
|
||
|
||
L45AC jsr MENU_CLEAR_PANE
|
||
jsr CLEAR_PAGE
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_PREV_MENU
|
||
ldx #$0a
|
||
ldy #$03
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ASOFT_CNTRL_LIST
|
||
|
||
ldx #$0d
|
||
ldy #$03
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_LIST_CNTRL
|
||
|
||
ldx #$0e
|
||
ldy #$03
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ASOFT_PGMS
|
||
|
||
L45E2 jsr MON_RDKEY
|
||
pha
|
||
jsr MON_COUT
|
||
pla
|
||
cmp #$9b
|
||
beq L4628
|
||
cmp #$ce
|
||
beq L4605
|
||
cmp #$ee
|
||
beq L4605
|
||
cmp #$d9
|
||
beq L45FE
|
||
cmp #$f9
|
||
bne L45E2
|
||
L45FE lda #$01
|
||
sta L1057
|
||
bne L460A
|
||
|
||
L4605 lda #$00
|
||
sta L1057
|
||
L460A ldx #$08
|
||
ldy #$01
|
||
jsr GOTOXY
|
||
jsr MON_CLREOL
|
||
ldx #$08
|
||
ldy #$14
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 TXT_ESC_RETRY
|
||
inc ALLOW_ESC
|
||
jsr PROMPT_CONTINUE
|
||
bcs L462B
|
||
L4628 jmp L3910
|
||
|
||
L462B jmp L45AC
|
||
|
||
L462E jsr P8_MLI
|
||
.dd1 P8_WRITE
|
||
.dd2 L0F3A
|
||
rts
|
||
|
||
L4635 jsr P8_MLI
|
||
.dd1 P8_DESTROY
|
||
.dd2 L0F2B
|
||
rts
|
||
|
||
L463C jsr P8_MLI
|
||
.dd1 P8_CREATE
|
||
.dd2 L0F2E
|
||
rts
|
||
|
||
L4643 jsr P8_MLI
|
||
.dd1 P8_READ_BLOCK
|
||
.dd2 L0F00
|
||
rts
|
||
|
||
L464A jsr P8_MLI
|
||
.dd1 P8_READ
|
||
.dd2 L0F42
|
||
rts
|
||
|
||
L4651 jsr P8_MLI
|
||
.dd1 P8_NEWLINE
|
||
.dd2 L0F4F
|
||
rts
|
||
|
||
L4658 jsr P8_MLI
|
||
.dd1 P8_OPEN
|
||
.dd2 L0F06
|
||
rts
|
||
|
||
CLOSE_FILES jsr P8_MLI
|
||
.dd1 P8_CLOSE
|
||
.dd2 CLOSE_PARAMS
|
||
rts
|
||
|
||
L4666 jsr P8_MLI
|
||
.dd1 P8_ONLINE
|
||
.dd2 L0F0E
|
||
rts
|
||
|
||
L466D jsr P8_MLI
|
||
.dd1 P8_ONLINE
|
||
.dd2 L0F15
|
||
rts
|
||
|
||
L4674 jsr P8_MLI
|
||
.dd1 P8_SET_PREFIX
|
||
.dd2 L0F12
|
||
rts
|
||
|
||
L467B jsr P8_MLI
|
||
.dd1 P8_GET_EOF
|
||
.dd2 L0F4A
|
||
rts
|
||
|
||
GET_FILE_INFO ldx #$12
|
||
ldy #$00
|
||
@COPYTO lda GET_FILE_INFO_PARAMS,y
|
||
sta $0a00,y
|
||
iny
|
||
dex
|
||
bpl @COPYTO
|
||
jsr P8_MLI
|
||
.dd1 P8_GET_FILE_INFO
|
||
.dd2 $0a00
|
||
sta CHAR_READ
|
||
php
|
||
ldx #$12
|
||
ldy #$00
|
||
@COPYFROM lda $0a00,y
|
||
sta GET_FILE_INFO_PARAMS,y
|
||
iny
|
||
dex
|
||
bpl @COPYFROM
|
||
lda CHAR_READ
|
||
plp
|
||
rts
|
||
|
||
L46AD sta L1B97
|
||
lda L1081
|
||
bne L46D3
|
||
ldx #$10
|
||
ldy #$00
|
||
jsr L2759
|
||
jmp L46DC
|
||
|
||
L46BF lda L1081
|
||
bne L46D9
|
||
jsr L276B
|
||
lda L1B96
|
||
bne L46CD
|
||
rts
|
||
|
||
L46CD ldx #$ff
|
||
txs
|
||
jmp L213C
|
||
|
||
L46D3 jsr MON_CROUT
|
||
jmp L46DC
|
||
|
||
L46D9 jmp L3FF7
|
||
|
||
L46DC lda L1B97
|
||
cmp #$27
|
||
bne L46EB
|
||
jsr PRINT_IND
|
||
.dd2 ERR_IO
|
||
jmp L46BF
|
||
|
||
L46EB cmp #$28
|
||
bne L46F7
|
||
jsr PRINT_IND
|
||
.dd2 TXT_NO_DEV_CONN
|
||
jmp L46BF
|
||
|
||
L46F7 cmp #$2b
|
||
bne L4703
|
||
jsr PRINT_IND
|
||
.dd2 ERR_DSK_WR_PROT
|
||
|
||
jmp L46BF
|
||
|
||
L4703 cmp #$2e
|
||
bne L470F
|
||
jsr PRINT_IND
|
||
.dd2 ERR_DISK_SWITCH
|
||
jmp L46BF
|
||
|
||
L470F cmp #$40
|
||
bne L471B
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_PNAME
|
||
jmp L46BF
|
||
|
||
L471B cmp #$44
|
||
bne L4727
|
||
jsr PRINT_IND
|
||
.dd2 ERR_DIR_NOT_FOUND
|
||
jmp L46BF
|
||
|
||
L4727 cmp #$45
|
||
bne L4733
|
||
jsr PRINT_IND
|
||
.dd2 ERR_VOL_NOT_FOUND
|
||
|
||
jmp L46BF
|
||
|
||
L4733 cmp #$46
|
||
bne L473F
|
||
jsr PRINT_IND
|
||
.dd2 ERR_FILE_NOT_FOUND
|
||
jmp L46BF
|
||
|
||
L473F cmp #$48
|
||
bne L474B
|
||
jsr PRINT_IND
|
||
.dd2 TXT_VOL_FULL
|
||
jmp L46BF
|
||
|
||
L474B cmp #$49
|
||
bne L4757
|
||
jsr PRINT_IND
|
||
.dd2 TXT_DIR_FULL
|
||
jmp L46BF
|
||
|
||
L4757 cmp #$4b
|
||
bne L4763
|
||
jsr PRINT_IND
|
||
.dd2 ERR_UNSUPP_FILETYPE
|
||
jmp L46BF
|
||
|
||
L4763 cmp #$4e
|
||
bne L476F
|
||
jsr PRINT_IND
|
||
.dd2 ERR_CANNOT_READ
|
||
jmp L46BF
|
||
|
||
L476F cmp #$51
|
||
bne L477B
|
||
jsr PRINT_IND
|
||
.dd2 ERR_BAD_DIR
|
||
jmp L46BF
|
||
|
||
L477B cmp #$52
|
||
bne L4787
|
||
jsr PRINT_IND
|
||
.dd2 ERR_NOT_PRODOS_DISK
|
||
|
||
jmp L46BF
|
||
|
||
L4787 cmp #$5a
|
||
bne L4793
|
||
jsr PRINT_IND
|
||
.dd2 ERR_FILE_DAMAGED
|
||
jmp L46BF
|
||
|
||
L4793 cmp #$45
|
||
bne L479F
|
||
jsr PRINT_IND
|
||
.dd2 ERR_VOLUME_NOT_FOUND
|
||
jmp L46BF
|
||
|
||
L479F cmp #$80
|
||
bne L47AB
|
||
jsr PRINT_IND
|
||
.dd2 ERR_NOT_DOS33
|
||
jmp L46BF
|
||
|
||
L47AB cmp #$55
|
||
bne L47B7
|
||
jsr PRINT_IND
|
||
.dd2 ERR_VCB_FULL
|
||
|
||
jmp L480B
|
||
|
||
L47B7 cmp #$56
|
||
bne L47C3
|
||
jsr PRINT_IND
|
||
.dd2 ERR_BAD_BUFFER
|
||
|
||
jmp L480B
|
||
|
||
L47C3 cmp #$04
|
||
bne L47CF
|
||
jsr PRINT_IND
|
||
.dd2 ERR_BAD_PARAM_COUNT
|
||
jmp L480B
|
||
|
||
L47CF cmp #$43
|
||
bne L47DB
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_REF_NUM
|
||
jmp L480B
|
||
|
||
L47DB cmp #$4a
|
||
bne L47E7
|
||
jsr PRINT_IND
|
||
.dd2 ERR_BAD_FILE_FMT
|
||
jmp L46BF
|
||
|
||
L47E7 cmp #$4c
|
||
bne L47F3
|
||
jsr PRINT_IND
|
||
.dd2 ERR_EOF
|
||
jmp L46BF
|
||
|
||
L47F3 cmp #$4d
|
||
bne L47FF
|
||
jsr PRINT_IND
|
||
.dd2 ERR_POS_RANGE
|
||
jmp L480B
|
||
|
||
L47FF cmp #$53
|
||
bne L480B
|
||
jsr PRINT_IND
|
||
.dd2 ERR_INV_CALL_PARAM
|
||
jmp L480B
|
||
|
||
L480B ldx #$12
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr MON_CLREOP
|
||
ldx #$13
|
||
ldy #$00
|
||
jsr GOTOXY
|
||
jsr PRINT_IND
|
||
.dd2 ERR_SYSTEM_ERR
|
||
inc L1B96
|
||
jmp L46BF
|
||
|
||
L4827 lda OS_SELECTION
|
||
beq L482F
|
||
jmp L49A5
|
||
|
||
L482F lda #$15
|
||
sta L0F07
|
||
lda #$1b
|
||
sta L0F07+1
|
||
lda L1C00
|
||
beq L4848
|
||
lda #$00
|
||
sta L0F07
|
||
lda #$1c
|
||
sta L0F07+1
|
||
L4848 lda HIMEM1?
|
||
sta L0F09+1
|
||
jsr L4658
|
||
beq L485C
|
||
L4853 jsr L46AD
|
||
ldx #$ff
|
||
txs
|
||
jmp L2136
|
||
|
||
L485C lda L0F0B
|
||
sta L0F4B
|
||
jsr L467B
|
||
beq L486A
|
||
jmp L4853
|
||
|
||
L486A lda #$00
|
||
sta L1BC4
|
||
sec
|
||
lda HIMEM3?
|
||
sbc #$51
|
||
lsr A
|
||
sta L1BCC
|
||
clc
|
||
lda L0F4C+2
|
||
ror A
|
||
sta L1BCB
|
||
lda L0F4C+1
|
||
ror A
|
||
sta L1BCA
|
||
bcc L489E
|
||
L488A clc
|
||
lda L1BCA
|
||
adc #$01
|
||
sta L1BCA
|
||
lda L1BCB
|
||
adc #$00
|
||
sta L1BCB
|
||
jmp L48A3
|
||
|
||
L489E lda L0F4C
|
||
bne L488A
|
||
L48A3 lda L0F0B
|
||
sta L0F43
|
||
lda #$00
|
||
sta L0F46
|
||
lda #$02
|
||
sta L0F46+1
|
||
lda #$00
|
||
sta L0F44
|
||
lda #$51
|
||
sta L0F44+1
|
||
L48BD jsr L464A
|
||
beq L48C5
|
||
jmp L4853
|
||
|
||
L48C5 inc L0F44+1
|
||
inc L0F44+1
|
||
sec
|
||
lda L1BCA
|
||
sbc #$01
|
||
sta L1BCA
|
||
lda L1BCB
|
||
sbc #$00
|
||
sta L1BCB
|
||
lda L1BCB
|
||
bne L48E6
|
||
lda L1BCA
|
||
beq L48F4
|
||
L48E6 lda L0F44+1
|
||
cmp HIMEM3?
|
||
bne L48BD
|
||
inc L1BC9
|
||
jmp L4902
|
||
|
||
L48F4 lda L0F0B
|
||
sta PD_CC_REFNUM
|
||
jsr CLOSE_FILES
|
||
beq L4902
|
||
jmp L4853
|
||
|
||
L4902 lda PD_C4_FILETYPE
|
||
cmp #$fc
|
||
bne L490C
|
||
jmp L4968
|
||
|
||
L490C lda L1BAD
|
||
bne L4934
|
||
lda #$ff
|
||
sta CODEPTR
|
||
lda #$50
|
||
sta CODEPTR+1
|
||
inc LINE_COUNT
|
||
lda PD_C4_AUX_FILETYPE
|
||
sta BASIC_START_ADDR
|
||
lda PD_C4_AUX_FILETYPE+1
|
||
sta BASIC_START_ADDR+1
|
||
lda BASIC_START_ADDR
|
||
sta END_LINE_NBR
|
||
lda BASIC_START_ADDR+1
|
||
sta END_LINE_NBR+1
|
||
L4934 lda L1BC9
|
||
beq L4947
|
||
lda #$00
|
||
sta PGM_END
|
||
lda HIMEM3?
|
||
sta PGM_END+1
|
||
jmp L4956
|
||
|
||
L4947 clc
|
||
lda L0F4C
|
||
sta PGM_END
|
||
lda L0F4C+1
|
||
adc #$51
|
||
sta PGM_END+1
|
||
L4956 sec
|
||
lda PGM_END
|
||
sbc #$01
|
||
sta PGM_END
|
||
lda PGM_END+1
|
||
sbc #$00
|
||
sta PGM_END+1
|
||
rts
|
||
|
||
L4968 lda L1BAD
|
||
bne L4981
|
||
lda #$ff
|
||
sta CODEPTR
|
||
lda #$50
|
||
sta CODEPTR+1
|
||
lda PD_C4_AUX_FILETYPE
|
||
sta SOME_BASIC_ADDR?
|
||
lda PD_C4_AUX_FILETYPE+1
|
||
sta SOME_BASIC_ADDR?+1
|
||
L4981 lda L1BC9
|
||
beq L4995
|
||
lda #$ff
|
||
sta PGM_END
|
||
lda HIMEM3?
|
||
sta PGM_END+1
|
||
dec PGM_END+1
|
||
rts
|
||
|
||
L4995 lda L0F4C
|
||
sta PGM_END
|
||
clc
|
||
lda L0F4C+1
|
||
adc #$51
|
||
sta PGM_END+1
|
||
rts
|
||
|
||
L49A5 lda #$00
|
||
sta $ec
|
||
lda #$51
|
||
sta $ed
|
||
L49AD lda $0801
|
||
sta L1BCE
|
||
lda $0802
|
||
sta L1BCF
|
||
lda #$00
|
||
sta L0F02
|
||
lda #$0a
|
||
sta L0F02+1
|
||
lda #$08
|
||
sta $eb
|
||
lda #$0c
|
||
sta $ea
|
||
L49CB ldy #$00
|
||
lda ($ea),y
|
||
iny
|
||
pha
|
||
lda ($ea),y
|
||
tax
|
||
pla
|
||
bne L49DA
|
||
jmp L4A4A
|
||
|
||
L49DA jsr L3166
|
||
jsr L4643
|
||
beq L49EA
|
||
jsr L46AD
|
||
pla
|
||
pla
|
||
jmp L2136
|
||
|
||
L49EA lda L1BC3
|
||
beq L49FF
|
||
ldy #$ff
|
||
L49F1 lda (PTR),y
|
||
sta ($ec),y
|
||
dey
|
||
bne L49F1
|
||
lda (PTR),y
|
||
sta ($ec),y
|
||
jmp L4A0C
|
||
|
||
L49FF ldy #$ff
|
||
L4A01 lda (PTR2),y
|
||
sta ($ec),y
|
||
dey
|
||
bne L4A01
|
||
lda (PTR2),y
|
||
sta ($ec),y
|
||
L4A0C inc $ed
|
||
lda $ed
|
||
cmp HIMEM3?
|
||
bne L4A1B
|
||
inc L1BC9
|
||
jmp L4A4A
|
||
|
||
L4A1B inc $ea
|
||
inc $ea
|
||
beq L4A24
|
||
jmp L49CB
|
||
|
||
L4A24 lda #$00
|
||
sta L0F02
|
||
lda #$08
|
||
sta L0F02+1
|
||
ldx L1BCF
|
||
lda L1BCE
|
||
jsr L3166
|
||
jsr L4643
|
||
beq L4A3F
|
||
jmp L3134
|
||
|
||
L4A3F lda L1BC3
|
||
beq L4A47
|
||
jsr L3158
|
||
L4A47 jmp L49AD
|
||
|
||
L4A4A lda PD_C4_FILETYPE
|
||
cmp #$04
|
||
beq L4A5C
|
||
cmp #$02
|
||
beq L4A59
|
||
jmp L4ABB
|
||
|
||
.dd1 $60
|
||
|
||
L4A59 jmp L4AF5
|
||
|
||
L4A5C lda L1BAD
|
||
bne L4A95
|
||
lda #$03
|
||
sta CODEPTR
|
||
lda #$51
|
||
sta CODEPTR+1
|
||
inc LINE_COUNT
|
||
lda L5100
|
||
sta BASIC_START_ADDR
|
||
lda L5101
|
||
sta BASIC_START_ADDR+1
|
||
lda BASIC_START_ADDR
|
||
sta END_LINE_NBR
|
||
lda BASIC_START_ADDR+1
|
||
sta END_LINE_NBR+1
|
||
clc
|
||
lda L5102
|
||
adc #$03
|
||
sta L0F4C
|
||
lda L5103
|
||
adc #$00
|
||
sta L0F4C+1
|
||
L4A95 lda L1BC9
|
||
beq L4AAB
|
||
lda #$ff
|
||
sta PGM_END
|
||
lda HIMEM3?
|
||
sta PGM_END+1
|
||
dec PGM_END+1
|
||
jmp L4ABA
|
||
|
||
L4AAB clc
|
||
lda L0F4C
|
||
sta PGM_END
|
||
lda L0F4C+1
|
||
adc #$51
|
||
sta PGM_END+1
|
||
L4ABA rts
|
||
|
||
L4ABB lda L1BAD
|
||
bne L4AD1
|
||
clc
|
||
lda L5100
|
||
adc #$01
|
||
sta L0F4C
|
||
lda L5101
|
||
adc #$00
|
||
sta L0F4C+1
|
||
L4AD1 lda L1BC9
|
||
beq L4AE5
|
||
lda #$ff
|
||
sta PGM_END
|
||
lda HIMEM3?
|
||
sta PGM_END+1
|
||
dec PGM_END+1
|
||
rts
|
||
|
||
L4AE5 lda L0F4C
|
||
sta PGM_END
|
||
clc
|
||
lda L0F4C+1
|
||
adc #$51
|
||
sta PGM_END+1
|
||
rts
|
||
|
||
L4AF5 lda L1BAD
|
||
bne L4B1D
|
||
lda #$01
|
||
sta CODEPTR
|
||
lda #$51
|
||
sta CODEPTR+1
|
||
lda #$01
|
||
sta SOME_BASIC_ADDR?
|
||
lda #$08
|
||
sta SOME_BASIC_ADDR?+1
|
||
clc
|
||
lda L5100
|
||
adc #$01
|
||
sta L0F4C
|
||
lda L5101
|
||
adc #$00
|
||
sta L0F4C+1
|
||
L4B1D lda L1BC9
|
||
beq L4B31
|
||
lda #$ff
|
||
sta PGM_END
|
||
lda HIMEM3?
|
||
sta PGM_END+1
|
||
dec PGM_END+1
|
||
rts
|
||
|
||
L4B31 lda L0F4C
|
||
sta PGM_END
|
||
clc
|
||
lda L0F4C+1
|
||
adc #$51
|
||
sta PGM_END+1
|
||
rts
|
||
|
||
L4B41 lda #$00
|
||
sta L1BC9
|
||
sec
|
||
lda HIMEM3?
|
||
sbc #$51
|
||
sta L1B03
|
||
sec
|
||
lda L0F4C+1
|
||
sbc L1B03
|
||
sta L0F4C+1
|
||
lda L0F4C+2
|
||
sbc #$00
|
||
sta L0F4C+2
|
||
lda #$ff
|
||
sta CODEPTR
|
||
lda #$50
|
||
sta CODEPTR+1
|
||
lda OS_SELECTION
|
||
beq L4B71
|
||
jmp L4B9F
|
||
|
||
L4B71 jsr L48A3
|
||
lda PD_C4_FILETYPE
|
||
cmp #$fc
|
||
bne L4B7D
|
||
beq L4B85
|
||
|
||
L4B7D lda #$00
|
||
sta L1BAD
|
||
jmp L4C03
|
||
|
||
L4B85 dec L1BAD
|
||
lda L1BAD
|
||
asl A
|
||
tax
|
||
lda #$00
|
||
sta L1BAD
|
||
lda L0F8B,x
|
||
sta MON_A1L
|
||
lda L0F8C,x
|
||
sta MON_A1H
|
||
jmp (MON_A1L)
|
||
|
||
L4B9F lda #$00
|
||
sta L0F02
|
||
lda #$0a
|
||
sta L0F02+1
|
||
lda #$00
|
||
sta $ec
|
||
lda #$51
|
||
sta $ed
|
||
jsr L4A1B
|
||
lda PD_C4_FILETYPE
|
||
cmp #$04
|
||
bne L4BBE
|
||
jmp L4C03
|
||
|
||
L4BBE cmp #$02
|
||
beq L4BC5
|
||
jmp L4BDA
|
||
|
||
L4BC5 dec L1BAD
|
||
lda L1BAD
|
||
asl A
|
||
tax
|
||
lda L0F8B,x
|
||
sta MON_A1L
|
||
lda L0F8C,x
|
||
sta MON_A1H
|
||
jmp (MON_A1L)
|
||
|
||
L4BDA dec L1BAD
|
||
lda L1BAD
|
||
asl A
|
||
tax
|
||
lda L0F93,x
|
||
sta MON_A1L
|
||
lda L0F94,x
|
||
sta MON_A1H
|
||
jmp (MON_A1L)
|
||
|
||
L4BEF lda #$50
|
||
sta L1B9E
|
||
jsr INIT_V4_B
|
||
lda END_LINE_NBR
|
||
sta START_LINE_NBR
|
||
lda END_LINE_NBR+1
|
||
sta START_LINE_NBR+1
|
||
L4C03 jsr READ_CODEPTR
|
||
bcs L4C11
|
||
jsr DO_CHKSUM_V4
|
||
jsr L4C17
|
||
jmp L4C03
|
||
|
||
L4C11 inc L1BAD
|
||
jmp L4D28
|
||
|
||
L4C17 lda LINE_COUNT
|
||
bne L4C1F
|
||
jsr INC_END_LINE_NBR
|
||
L4C1F lda #$00
|
||
sta LINE_COUNT
|
||
dec L1B9E
|
||
lda L1B9E
|
||
beq L4C2D
|
||
rts
|
||
|
||
L4C2D jsr L4C47
|
||
pla
|
||
pla
|
||
jsr INC_END_LINE_NBR
|
||
jmp L4BEF
|
||
|
||
INC_END_LINE_NBR clc
|
||
lda END_LINE_NBR
|
||
adc #$01
|
||
sta END_LINE_NBR
|
||
bcc @EXIT
|
||
inc END_LINE_NBR+1
|
||
@EXIT rts
|
||
|
||
L4C47 jsr L4C85
|
||
lda L10F0
|
||
and #$0f
|
||
bne L4C6B
|
||
inc L1B98
|
||
lda L1B98
|
||
cmp #$11
|
||
bcc L4C6B
|
||
jsr PROMPT_CONTINUE
|
||
bcc L4C63
|
||
jmp L213C
|
||
|
||
L4C63 jsr MON_HOME
|
||
lda #$00
|
||
sta L1B98
|
||
L4C6B lda KBD
|
||
and #$80
|
||
beq L4C84
|
||
ora #$80
|
||
jsr L2772
|
||
lda KBDSTRB
|
||
L4C7A lda KBD
|
||
and #$80
|
||
beq L4C7A
|
||
lda KBDSTRB
|
||
L4C84 rts
|
||
|
||
L4C85 lda KP_VER_FLAG
|
||
beq L4C91
|
||
bmi L4C8E
|
||
bne L4CC3
|
||
|
||
L4C8E jmp L4CE5
|
||
|
||
L4C91 ldx #$07
|
||
jsr MON_PRBL2
|
||
ldx #$02
|
||
ldy #$00
|
||
L4C9A lda CHKSUM_V4_LINE,y
|
||
bne L4CAD
|
||
txa
|
||
beq L4CAD
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
jmp L4CB0
|
||
|
||
L4CAD jsr MON_PRBYTE
|
||
L4CB0 iny
|
||
dex
|
||
bpl L4C9A
|
||
jsr INIT_V4_B
|
||
ldx #$06
|
||
jsr MON_PRBL2
|
||
jsr PRINT_RANGE
|
||
jsr MON_CROUT
|
||
rts
|
||
|
||
L4CC3 ldx #$06
|
||
jsr MON_PRBL2
|
||
ldx #$03
|
||
ldy #$00
|
||
L4CCC lda CSUM_V5_2,y
|
||
jsr MON_PRBYTE
|
||
iny
|
||
dex
|
||
bpl L4CCC
|
||
jsr INIT_V4_B
|
||
ldx #$05
|
||
jsr MON_PRBL2
|
||
jsr PRINT_RANGE
|
||
jsr MON_CROUT
|
||
rts
|
||
|
||
L4CE5 jsr MON_PRBLNK
|
||
ldx #$03
|
||
ldy #$00
|
||
L4CEC lda CSUM_V5_2,y
|
||
jsr MON_PRBYTE
|
||
iny
|
||
dex
|
||
bpl L4CEC
|
||
ldx #$03
|
||
jsr MON_PRBL2
|
||
jsr PRINT_RANGE
|
||
ldx #$04
|
||
jsr MON_PRBL2
|
||
ldx #$02
|
||
ldy #$00
|
||
L4D07 lda CHKSUM_V4_LINE,y
|
||
bne L4D1A
|
||
txa
|
||
beq L4D1A
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
jmp L4D1D
|
||
|
||
L4D1A jsr MON_PRBYTE
|
||
L4D1D iny
|
||
dex
|
||
bpl L4D07
|
||
jsr INIT_V4_B
|
||
jsr MON_CROUT
|
||
rts
|
||
|
||
L4D28 lda L1BC9
|
||
beq L4D30
|
||
jmp L4B41
|
||
|
||
L4D30 lda LINE_COUNT
|
||
bne L4D38
|
||
jsr L4C47
|
||
L4D38 lda KP_VER_FLAG
|
||
beq SHOW_V4_ONLY
|
||
bmi L4D41
|
||
bne L4D72
|
||
|
||
L4D41 jmp L4D95
|
||
|
||
SHOW_V4_ONLY ldx #$07
|
||
jsr MON_PRBL2
|
||
ldx #$02
|
||
ldy #$00
|
||
@LOOP lda CHKSUM_V4_PGM,y
|
||
bne @PRBYTE
|
||
txa
|
||
beq @PRBYTE
|
||
lda #‘ ’ | $80
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
jmp @NOBYTE
|
||
|
||
@PRBYTE jsr MON_PRBYTE
|
||
@NOBYTE iny
|
||
dex
|
||
bpl @LOOP
|
||
jsr MON_PRBLNK
|
||
jsr PRINT_IND
|
||
.dd2 TXT_PGM_TOTAL
|
||
jmp L4DC9
|
||
|
||
L4D72 ldx #$06
|
||
jsr MON_PRBL2
|
||
ldx #$03
|
||
ldy #$00
|
||
L4D7B lda CSUM_V5_6,y
|
||
jsr MON_PRBYTE
|
||
iny
|
||
dex
|
||
bpl L4D7B
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
jsr PRINT_IND
|
||
cli
|
||
ora $4c,x
|
||
cmp #$4d
|
||
L4D95 jsr MON_PRBLNK
|
||
ldx #$03
|
||
ldy #$00
|
||
L4D9C lda CSUM_V5_6,y
|
||
jsr MON_PRBYTE
|
||
iny
|
||
dex
|
||
bpl L4D9C
|
||
jsr PRINT_IND
|
||
.dd2 TXT_PGM_TOTAL
|
||
ldx #$02
|
||
ldy #$00
|
||
L4DAF lda CHKSUM_V4_PGM,y
|
||
bne L4DC2
|
||
txa
|
||
beq L4DC2
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jsr MON_COUT
|
||
jmp L4DC5
|
||
|
||
L4DC2 jsr MON_PRBYTE
|
||
L4DC5 iny
|
||
dex
|
||
bpl L4DAF
|
||
L4DC9 jsr MON_CROUT
|
||
lda L10F0
|
||
cmp #$b0
|
||
bne L4DD6
|
||
jsr PROMPT_CONTINUE
|
||
L4DD6 jsr L444C
|
||
lda FLAG_SUBMIT
|
||
beq L4DE1
|
||
jmp L3ED0
|
||
|
||
L4DE1 lda L10F0
|
||
cmp #$b0
|
||
beq L4DF0
|
||
lda #$b0
|
||
sta L10F0
|
||
jsr L3555
|
||
L4DF0 lda L1057
|
||
beq L4DFD
|
||
lda L1C87
|
||
beq L4DFD
|
||
jsr PROMPT_CONTINUE
|
||
L4DFD jmp L213C
|
||
|
||
INIT_V4_B lda #$00
|
||
ldx #$03
|
||
@CLEAR sta L1BA3,x
|
||
dex
|
||
bpl @CLEAR
|
||
jsr INIT_V5_2345
|
||
rts
|
||
|
||
READ_CODEPTR clc
|
||
lda CODEPTR
|
||
adc #$01
|
||
sta CODEPTR
|
||
bcc @SKIP
|
||
inc CODEPTR+1
|
||
@SKIP lda CODEPTR+1
|
||
cmp PGM_END+1
|
||
bcc @READ_NEXT
|
||
bne @AT_END
|
||
lda CODEPTR
|
||
cmp PGM_END
|
||
bcc @READ_NEXT
|
||
beq @READ_NEXT
|
||
@AT_END sec
|
||
rts
|
||
|
||
@READ_NEXT ldy #$00
|
||
lda (CODEPTR),y
|
||
sta CHAR_READ
|
||
clc
|
||
rts
|
||
|
||
DO_CHKSUM_V4 lda LINE_BYTES_READ
|
||
beq @CALC_V4_CHKSUM
|
||
lda OS_SELECTION
|
||
beq @PRODOS
|
||
lda PD_C4_FILETYPE
|
||
cmp #$01 ;Integer BASIC?
|
||
beq @INT_BASIC
|
||
@PRODOS lda CHAR_READ
|
||
cmp #$21 ;'!' or higher (printable char/token)
|
||
bcs @CALC_V4_CHKSUM
|
||
cmp #$04 ;Embedded CTRL+D?
|
||
beq @CALC_V4_CHKSUM
|
||
rts
|
||
|
||
@INT_BASIC lda CHAR_READ
|
||
cmp #$80 ;Int BASIC tokens have high bit OFF
|
||
bcc @CALC_V4_CHKSUM
|
||
cmp #$a1 ;'!' or higher (high bit set)
|
||
bcs @CALC_V4_CHKSUM
|
||
cmp #$84 ;Embedded CTRL+D
|
||
beq @CALC_V4_CHKSUM
|
||
rts
|
||
|
||
@CALC_V4_CHKSUM jsr CALC_CKSUM_V4_PGM
|
||
lda TOKEN_FLAG
|
||
cmp #$02 ;2=REM has been recorded
|
||
beq @NOT_REM
|
||
lda CHAR_READ
|
||
jsr RUN_V5_CHECKSUM ;Non-REM contents.
|
||
lda TOKEN_FLAG
|
||
cmp #$01
|
||
bne @NOT_REM
|
||
lda #$02
|
||
sta TOKEN_FLAG
|
||
@NOT_REM lda CHAR_READ
|
||
clc
|
||
eor CHKSUM_V4_LINE+2
|
||
rol A
|
||
ldx #$02
|
||
@LOOP adc CHKSUM_V4_LINE,x
|
||
sta CHKSUM_V4_LINE,x
|
||
bcc @DONE
|
||
lda #$00
|
||
dex
|
||
bpl @LOOP
|
||
@DONE rts
|
||
|
||
CALC_CKSUM_V4_PGM ldx #$02
|
||
@LOOP clc
|
||
lda #$01
|
||
adc CHKSUM_V4_PGM,x
|
||
sta CHKSUM_V4_PGM,x
|
||
bcc @DONE
|
||
dex
|
||
bpl @LOOP
|
||
@DONE rts
|
||
|
||
PRINT_RANGE lda START_LINE_NBR+1
|
||
ldx START_LINE_NBR
|
||
ldy FLAG_BASIC_BINARY
|
||
beq @PR_LINE_START
|
||
tay
|
||
lda #‘ ’ | $80
|
||
jsr MON_COUT
|
||
tya
|
||
jsr MON_PRNTAX
|
||
jmp @PR_MORE
|
||
|
||
@PR_LINE_START jsr PRDEC_AX
|
||
@PR_MORE jsr PRINT_IND
|
||
.dd2 TXT_DASH
|
||
|
||
lda END_LINE_NBR+1
|
||
ldx END_LINE_NBR
|
||
ldy FLAG_BASIC_BINARY
|
||
beq @PR_LINE_END
|
||
jsr MON_PRNTAX
|
||
lda #$a0
|
||
jsr MON_COUT
|
||
jmp @FINISH
|
||
|
||
@PR_LINE_END jsr PRDEC_AX
|
||
@FINISH inc LINE_COUNT
|
||
rts
|
||
|
||
L4EE5 inc L1BAD
|
||
L4EE8 inc L1BAD
|
||
L4EEB inc L1BAD
|
||
L4EEE inc L1BAD
|
||
jmp L4D28
|
||
|
||
L4EF4 inc LINE_COUNT
|
||
lda #$01
|
||
sta CODEPTR
|
||
lda #$51
|
||
sta CODEPTR+1
|
||
L4EFF jsr READ_CODEPTR
|
||
bcs L4EEE
|
||
sta SOME_COUNTER?
|
||
jsr L4F67
|
||
jsr CALC_CKSUM_V4_PGM
|
||
jsr READ_CODEPTR
|
||
bcs L4EEB
|
||
sta END_LINE_NBR
|
||
jsr DO_CHKSUM_V4
|
||
jsr L4F67
|
||
jsr READ_CODEPTR
|
||
bcs L4EE8
|
||
sta END_LINE_NBR+1
|
||
jsr DO_CHKSUM_V4
|
||
jsr L4F67
|
||
lda LINE_COUNT
|
||
beq @LOOP
|
||
lda END_LINE_NBR
|
||
sta START_LINE_NBR
|
||
lda END_LINE_NBR+1
|
||
sta START_LINE_NBR+1
|
||
lda #$00
|
||
sta LINE_COUNT
|
||
@LOOP jsr READ_CODEPTR
|
||
bcs L4F6D
|
||
inc LINE_BYTES_READ
|
||
jsr DO_CHKSUM_V4
|
||
jsr L4F67
|
||
jmp @LOOP
|
||
|
||
L4F50 pla
|
||
pla
|
||
lda #$00
|
||
sta LINE_BYTES_READ
|
||
inc L1BA3
|
||
lda L1BA3
|
||
cmp #$0a
|
||
bne L4EFF
|
||
jsr L4C47
|
||
jmp L4EFF
|
||
|
||
L4F67 dec SOME_COUNTER?
|
||
beq L4F50
|
||
rts
|
||
|
||
L4F6D jmp L4EE5
|
||
|
||
CALC_CKSUM? jsr READ_CODEPTR
|
||
sta NEXT_LINE_PTR
|
||
jsr READ_CODEPTR
|
||
sta NEXT_LINE_PTR+1
|
||
jsr L504D
|
||
lda #$00
|
||
sta LINE_COUNT
|
||
jsr READ_CODEPTR
|
||
sta START_LINE_NBR
|
||
sta END_LINE_NBR
|
||
jsr L4FD8
|
||
jsr DO_CHKSUM_V4
|
||
jsr READ_CODEPTR
|
||
sta START_LINE_NBR+1
|
||
sta END_LINE_NBR+1
|
||
jsr L4FD8
|
||
jsr DO_CHKSUM_V4
|
||
CONTINUE_LINE jsr READ_CODEPTR
|
||
bcs AT_PGM_END
|
||
jsr L4FD8
|
||
lda CHAR_READ
|
||
cmp #‘ ’
|
||
bcs @NOT_CONTROL
|
||
jsr L43E2
|
||
@NOT_CONTROL cmp #$b2 ;REM token?!
|
||
bne @NOT_REM
|
||
lda #$01
|
||
sta TOKEN_FLAG
|
||
@NOT_REM lda CHAR_READ
|
||
inc LINE_BYTES_READ
|
||
jsr DO_CHKSUM_V4
|
||
jmp CONTINUE_LINE
|
||
|
||
L4FC9 inc L1BAD
|
||
L4FCC inc L1BAD
|
||
L4FCF inc L1BAD
|
||
AT_PGM_END inc L1BAD
|
||
jmp L4D28
|
||
|
||
L4FD8 dec SOME_COUNTER?
|
||
beq L4FDE
|
||
rts
|
||
|
||
L4FDE inc L1BA3
|
||
lda #$00
|
||
sta LINE_BYTES_READ
|
||
sta TOKEN_FLAG
|
||
lda L1BA3
|
||
cmp #$0a
|
||
bne L4FF3
|
||
jsr L4C47
|
||
L4FF3 lda NEXT_LINE_PTR
|
||
sta SOME_BASIC_ADDR?
|
||
lda NEXT_LINE_PTR+1
|
||
sta SOME_BASIC_ADDR?+1
|
||
lda CHAR_READ
|
||
sta NEXT_LINE_PTR
|
||
jsr READ_CODEPTR
|
||
bcs L4FCF
|
||
sta NEXT_LINE_PTR+1
|
||
jsr L504D
|
||
lda NEXT_LINE_PTR+1
|
||
bne L5018
|
||
jmp L4D28
|
||
|
||
L5018 jsr READ_CODEPTR
|
||
bcs L4FCC
|
||
sta END_LINE_NBR
|
||
jsr L4FD8
|
||
jsr DO_CHKSUM_V4
|
||
jsr READ_CODEPTR
|
||
bcs L4FC9
|
||
sta END_LINE_NBR+1
|
||
jsr L4FD8
|
||
jsr DO_CHKSUM_V4
|
||
lda LINE_COUNT
|
||
beq L5045
|
||
lda END_LINE_NBR
|
||
sta START_LINE_NBR
|
||
lda END_LINE_NBR+1
|
||
sta START_LINE_NBR+1
|
||
L5045 lda #$00
|
||
sta LINE_COUNT
|
||
jmp CONTINUE_LINE
|
||
|
||
L504D sec
|
||
lda NEXT_LINE_PTR
|
||
sbc SOME_BASIC_ADDR?
|
||
sta SOME_COUNTER?
|
||
lda SOME_COUNTER?
|
||
bne L5061
|
||
lda #$ff
|
||
sta SOME_COUNTER?
|
||
L5061 clc
|
||
jsr L4FD8
|
||
jsr CALC_CKSUM_V4_PGM
|
||
jsr CALC_CKSUM_V4_PGM
|
||
rts
|
||
|
||
.dd1 $00
|
||
.str ↑“1 E B CC K_ >_ L 0 "”
|
||
.dd1 $80
|
||
.str ↑“A_PC_ ”
|
||
.dd1 $90
|
||
.str ↑“ ”,$87,“._”
|
||
.dd1 $81
|
||
.str ↑“_ S ”
|
||
.dd1 $80
|
||
.dd1 $a0
|
||
.dd1 $d2
|
||
.dd1 $80
|
||
.str ↑“ _ _ _ F O1O S R 0 _. _/ Y H .E T”
|
||
+ “ UC K > LE R/S ”
|
||
L5100 .dd1 $c7
|
||
L5101 .dd1 $ba
|
||
L5102 .dd1 $8d
|
||
L5103 .dd1 $00
|
||
.zstr ↑“YOU ARE ABOUT TO FORMAT A LARGE DISK”,$8d
|
||
.zstr ↑“DIRECTORY STRUCTURE IS DAMAGED”,$8d
|
||
.zstr ↑“BAD BLOCK NUMBER:”,$8d
|
||
.zstr ↑“FILES ENDANGERED:”,$8d
|
||
.zstr ↑“0 BAD BLOCKS”,$8d
|
||
.zstr ↑“BLOCK NUMBERS DO NOT MATCH:”,$8d
|
||
.zstr ↑“FOR SOURCE SLOT:”,$8d
|
||
.zstr ↑“DESTINATION SLOT:”,$8d
|
||
.zstr ↑“SELECT AN OUTPUT DEVICE:”
|
||
.zstr ↑“M - MONITOR ONLY”,$8d
|
||
.zstr ↑“P - PRINTER AND MONITOR”,$8d
|
||
.zstr ↑“PRINTER SLOT:”
|
||
.zstr ↑“FORMAT”
|
||
.zstr ↑“COPY”
|
||
.zstr ↑“RENAME”
|
||
.zstr ↑“BLOCK ALLOCATION”
|
||
.zstr ↑“COMPARE”
|
||
.zstr ↑“RESTORE DEFAULTS”
|
||
.zstr ↑“DELETE”
|
||
.zstr ↑“CATALOG”
|
||
.dd1 $d1
|
||
.dd1 $d5
|
||
.adrend ↑ ~$0e00
|
||
|
||
.addrs $6500
|
||
PRG_COPY lda #$01
|
||
sta P8_IBAKVER
|
||
lda #$06
|
||
sta P8_IVERSION
|
||
lda #$02
|
||
sta P8_MEMTABL+1 ;Reserve $E00 (but not $F00?)
|
||
ldy #$06
|
||
lda #$ff
|
||
@RESERVE sta P8_MEMTABL+2,y
|
||
dey
|
||
bpl @RESERVE
|
||
lda #$f8
|
||
sta P8_MEMTABL+9 ;Reserve memory through $5F00
|
||
lda #$a0
|
||
sta PTR
|
||
lda #$20
|
||
sta PTR+1
|
||
lda #$00
|
||
sta PTR2
|
||
lda #$0e
|
||
sta PTR2+1
|
||
lda #$00
|
||
sta $fa
|
||
sta $fb
|
||
ldy #$00
|
||
@COPY lda (PTR),y ;Copy $20A0 to $E00
|
||
sta (PTR2),y
|
||
lda PTR2
|
||
clc
|
||
adc #$01
|
||
sta PTR2
|
||
lda PTR2+1
|
||
adc #$00
|
||
sta PTR2+1
|
||
lda PTR
|
||
clc
|
||
adc #$01
|
||
sta PTR
|
||
lda PTR+1
|
||
adc #$00
|
||
sta PTR+1
|
||
lda $fa
|
||
clc
|
||
adc #$01
|
||
sta $fa
|
||
lda $fb
|
||
adc #$00
|
||
sta $fb
|
||
cmp #$42
|
||
bne @COPY
|
||
lda $fa
|
||
cmp #$6d
|
||
bne @COPY
|
||
jmp START
|
||
|
||
.dd1 $00
|
||
.dd1 $d0
|
||
.dd1 $cc
|
||
.adrend ↑ ~$6500
|
||
.adrend ↑ $2000
|