diff --git a/src/mon_m65/,glue.s b/src/mon_m65/,glue.s new file mode 100644 index 00000000..6ed67511 --- /dev/null +++ b/src/mon_m65/,glue.s @@ -0,0 +1,3 @@ + + +!macro NOP { eom } diff --git a/src/mon_m65/bsmon.s b/src/mon_m65/bsmon.s index 06d1283c..0115cec7 100644 --- a/src/mon_m65/bsmon.s +++ b/src/mon_m65/bsmon.s @@ -83,11 +83,8 @@ !addr BA = $bd !addr FNBANK = $be -!addr NDX = $d0 ; length of keyboard buffer !addr MODE_80 = $d7 ; 80 column / 40 volumn flag -!addr QTSW = $f4 ; Quote switch - !addr Buffer = $0200 ; input buffer !addr IIRQ = $0314 @@ -106,11 +103,11 @@ !addr Disk_Sector = $40A ; logical sector 0 -> 255 !addr Disk_Status = $40B ; BCD value of status -Mon_Data .BSS 40 ; buffer for hunt and filename -Disk_Msg .BSS 40 ; disk status as text message +Mon_Data = $410 ; 40 bytes, buffer for hunt and filename +Disk_Msg = $440 ; 40 bytes, disk status as text message -!addr EXIT_OLD = $cf2e ; exit address for ROM 910110 -!addr EXIT = $cfa4 ; exit address for ROM 911001 +!addr EXIT_OLD = $cf2e ; exit address for ROM 910110 +!addr EXIT = $cfa4 ; exit address for ROM 911001 !addr PRIMM = $ff7d !addr CINT = $ff81 @@ -139,7 +136,7 @@ Mon_Break ; ******* JSR PRIMM - .BYTE "\rBREAK\a",0 + !pet KEY_RETURN, "break",0 ; ; XXX what is '\a'? JSR Print_Commands ; pull BP, Z, Y, X, A,SR,PCL,PCH @@ -207,7 +204,7 @@ Mon_Start LDA #$c0 JSR SETMSG CLI - NOP + +NOP ; ********** Mon_Register @@ -243,7 +240,7 @@ Mon_Register LDY #8 LDA SR -@loopc ASL A +@loopc ASL PHA LDA #'-' BCC @flag @@ -301,7 +298,7 @@ Mon_Error ; put a question mark at the end of the text JSR PRIMM - .BYTE "\eO",CRIGHT,'?',0 + !pet KEY_ESC, "o",CRIGHT,'?',0 LDX #$f8 ; reset stack pointer TXS BRA Main @@ -314,7 +311,7 @@ Mon_Select CPX #22 LBCS Load_Save TXA - ASL A + ASL TAX JMP (Jump_Table,X) @@ -323,26 +320,26 @@ Print_Commands ; ************ JSR PRIMM - .BYTE CR,YELLOW,REV,"BS MONITOR COMMANDS:" + !pet CR,YELLOW,REV,"bs monitor commands:" ; ********** Command_Char ; ********** - ; 0123456789abcdef - .BYTE "ABCDFGHJMRTX@.>;?" + ; 0123456789abcdef + !pet "abcdfghjmrtx@.>;?" ; ********* Cons_Prefix ; ********* - .BYTE "$+&%'" + !pet "$+&%'" ; ************** Load_Save_Verify ; ************** - .BYTE "LSV",WHITE,0 + !pet "lsv",WHITE,0 RTS ; ******** @@ -531,7 +528,7 @@ Fetch TYA TAZ BBS7 Long_PC+3,@banked ; trigger banked access - NOP ; use LDA [Long_PC],Z + +NOP ; use LDA [Long_PC],Z @banked LDA (Long_PC),Z PLZ AND #$ff @@ -647,7 +644,7 @@ Mon_Set_Memory BCS @exit LDA Long_AC BBS7 Long_PC+3,@banked ; trigger banked access - NOP ; use STA [Long_PC],Z + +NOP ; use STA [Long_PC],Z @banked STA (Long_PC),Z INZ CPZ #16 @@ -656,8 +653,8 @@ Mon_Set_Memory @next BCC @loop @exit JSR PRIMM - .BYTE "\eO" - .BYTE $91,$00 + !pet KEY_ESC, "o" + !pet $91,$00 JSR Dump_Row JMP Main @@ -665,24 +662,28 @@ Mon_Set_Memory Mon_Go ; **** - JSR Get_LAC ; get 1st. parameter - JSR LAC_To_PC - LDX SPL - TXS - JMP JMPFAR + ; XXX to be rewritten for Open ROMs! + rts + ; JSR Get_LAC ; get 1st. parameter + ; JSR LAC_To_PC + ; LDX SPL + ; TXS + ; JMP JMPFAR ; ***** Mon_JSR ; ***** - JSR Get_LAC ; get 1st. parameter - JSR LAC_To_PC - LDX SPL - TXS - JSR JSRFAR - TSX - STX SPL - JMP Main + ; XXX to be rewritten for Open ROMs! + rts + ; JSR Get_LAC ; get 1st. parameter + ; JSR LAC_To_PC + ; LDX SPL + ; TXS + ; JSR JSRFAR + ; TSX + ; STX SPL + ; JMP Main ; ********** Dump_4_Bytes @@ -690,7 +691,7 @@ Dump_4_Bytes JSR CHROUT ; colour @loop BBS7 Long_PC+3,@banked ; trigger banked access - NOP ; use LDA [Long_PC],Z + +NOP ; use LDA [Long_PC],Z @banked LDA (Long_PC),Z JSR Print_Hex_Blank INZ @@ -707,7 +708,7 @@ Dump_4_Chars STY QTSW ; disable quote mode JSR CHROUT ; colour @loop BBS7 Long_PC+3,@banked ; trigger banked access - NOP ; use LDA [Long_PC],Z + +NOP ; use LDA [Long_PC],Z @banked LDA (Long_PC),Z TAY AND #%01100000 @@ -743,7 +744,7 @@ Dump_Row BNE @loop JSR PRIMM - .BYTE $3a,$12,$00 ; : reverse on + !byte $3a,$12,$00 ; : reverse on LDZ #0 LDX #2 ; 4 blocks in 80 columns @@ -936,7 +937,7 @@ Load_Save LBEQ Mon_Error LBCS Main JSR PRIMM - .BYTE " ERROR",0 + !pet " error",0 JMP Main @load LDX Long_PC @@ -1006,7 +1007,7 @@ Mon_Assemble SEC SBC #$3f ; offset LDY #5 ; 5 bit code -@lpbit LSR A +@lpbit LSR ROR Long_DA ROR Long_DA+1 DEY @@ -1051,10 +1052,10 @@ Mon_Assemble LBCC Mon_Error CMP #'8' LBCS Mon_Error - ASL A - ASL A - ASL A - ASL A + ASL + ASL + ASL + ASL ORA Op_Code STA Op_Code @@ -1154,7 +1155,7 @@ Mon_Assemble @rbra CMP #']' BNE @right - BBR5 Op_Flag,_error + BBR5 Op_Flag,@error LDA Op_Ix LBEQ Mon_Error ; no value LDA Mode_Flags @@ -1267,7 +1268,7 @@ Mon_Assemble JSR Branch_Target LDA Op_Code LDY #1 ; short branch - BBR6 Op_Flag,_bran1 + BBR6 Op_Flag,@bran1 INY ; long branch ORA #3 @bran1 BRA @store @@ -1325,7 +1326,7 @@ Mon_Assemble STA [Long_PC],Z @print JSR PRIMM - !byte 13,$91,"A ", KEY_ESC, "Q",0 + !pet 13,$91,"a ", KEY_ESC, "q",0 JSR Print_Code INC Op_Size LDA Op_Size @@ -1374,7 +1375,7 @@ Branch_Target ; *********** DEW Long_AC - DEC A + DEC BNE Branch_Target ; Target - PC @@ -1431,9 +1432,9 @@ Size_To_Mode ; ********** LDA Op_Len - LSR A - ROR A - ROR A + LSR + ROR + ROR ORA Mode_Flags STA Mode_Flags LDX #0 @@ -1447,11 +1448,11 @@ Mon_Disassemble BCS @nopar JSR LAC_To_LPC ; Long_PC = start address JSR Get_LAC ; Long_AC = end address - BCC range + BCC @range @nopar LDA #32 ; disassemble 32 bytes STA Long_CT BRA @loop -range JSR LAC_Minus_LPC ; Long_CT = range +@range JSR LAC_Minus_LPC ; Long_CT = range LBCC Mon_Error ; -> negative @loop JSR CR_Erase ; prepare empty line @@ -1527,9 +1528,9 @@ Print_Code STA Adr_Flags ; store TYA ; A = length and address mode AND #%11000000 ; mask instruction length - ASL A ; rotate into lower two bits - ROL A - ROL A + ASL ; rotate into lower two bits + ROL + ROL STA Op_Size ; store BBR5 Op_Flag,@norm1 INC Op_Size @@ -1539,7 +1540,7 @@ Print_Code LDY #0 LDA #' ' - BBR4 Op_Flag,_blpr + BBR4 Op_Flag,@blpr LDA #'*' ; print * for NEG NEG @blpr JSR CHROUT @lphex JSR Fetch @@ -1587,7 +1588,7 @@ Print_Code LDY #5 ; 5 bits per letter @lplet ASL Long_AC ROL Long_AC+1 - ROL A ; rotate letter into A + ROL ; rotate letter into A DEY BNE @lplet ; next bit ADC #$3f ; add offset (C = 0) @@ -1597,7 +1598,7 @@ Print_Code JSR CHROUT ; and print it BRA @lpmne ; next letter -@lastc BBR4 Op_Flag,_lbra ; -> no Q +@lastc BBR4 Op_Flag,@lbra ; -> no Q CMP #'A' ; LDA, STA, ORA BEQ @Q3 CMP #'C' ; DEC, INC @@ -1615,7 +1616,7 @@ Print_Code BRA @mne5 @lbra JSR CHROUT ; 3rd. character - BBS6 Op_Flag,_mne5 ; long branch + BBS6 Op_Flag,@mne5 ; long branch ; check for 4-letter bit instructions @@ -1628,11 +1629,11 @@ Print_Code SMB7 Op_Flag ; flag two operands @biti LDA Op_Code AND #%01110000 - ASL A - ROL A - ROL A - ROL A - ROL A + ASL + ROL + ROL + ROL + ROL ORA #'0' JSR CHROUT BRA @mne5 @@ -1652,7 +1653,7 @@ Print_Code BNE @lpaccu LDA #'A' - BBR4 Op_Flag,_accu + BBR4 Op_Flag,@accu LDA #'Q' @accu JSR CHROUT JMP @return @@ -1692,7 +1693,7 @@ Print_Code ; print 16 bit operand hi/lo or 8 bit operand - BBR5 Op_Flag,_proper + BBR5 Op_Flag,@proper LDA Long_AC+1 JSR Print_Hex ; [$nn],Z LDA #']' @@ -1700,7 +1701,7 @@ Print_Code BRA @labf @proper LDY Op_Size - BBR7 Op_Flag,_lpoper + BBR7 Op_Flag,@lpoper LDY #1 @lpoper LDA Long_AC-1,Y JSR Print_Hex @@ -1725,13 +1726,13 @@ Print_Code LDA #')' JSR CHROUT -@labf BBR4 Op_Flag,_comch ; not a Q instruction +@labf BBR4 Op_Flag,@comch ; not a Q instruction LDA Adr_Flags AND #3 CMP #1 BNE @return ; Q only with ,X -_comch BBR2 Adr_Flags,@labg ; , flag +@comch BBR2 Adr_Flags,@labg ; , flag LDA #',' JSR CHROUT @@ -1762,8 +1763,8 @@ _comch BBR2 Adr_Flags,@labg ; , flag @rel LDA #2 ; offset for relative address @rela PHA LDA Op_Size ; 1:short 2:long - LSR A - ROR A + LSR + ROR AND Long_AC BPL @labh LDA #$ff ; backward branch @@ -1868,7 +1869,7 @@ Read_Number LDX #3 ; push Long_AC * 2 CLC @push LDA Long_AC,X - ROL A + ROL PHA DEX BPL @push @@ -1989,10 +1990,10 @@ A_To_Hex JSR @nibble TAX PLA - LSR A - LSR A - LSR A - LSR A + LSR + LSR + LSR + LSR @nibble AND #15 CMP #10 @@ -2058,16 +2059,17 @@ Add_LPC CLC ADC Long_PC STA Long_PC - BCC @return + BCC Inc_LPC_Page_return ; ********** Inc_LPC_Page ; ********** INC Long_PC+1 - BNE @return + BNE Inc_LPC_Page_return INW Long_PC+2 -@return RTS +Inc_LPC_Page_return + RTS ; ********* Param_Range @@ -2108,7 +2110,7 @@ Converter LDA Cons_Prefix,X JSR CHROUT TXA - ASL A + ASL TAX JSR (Conv_Tab,X) PLX @@ -2148,7 +2150,7 @@ Print_Octal_entry LDA #0 @loopb ASL Long_CT ROW Long_CT+1 - ROL A + ROL DEY BNE @loopb CPX #1 ; print last character @@ -2219,7 +2221,7 @@ Print_BCD @loopb ASL Long_PC ROL Long_PC+1 ROW Long_PC+2 - ROL A + ROL DEX BPL @loopb @@ -2275,10 +2277,10 @@ Get_Disk_Status JSR TKSA JSR ACPTR ; 1st. digit STA Disk_Msg - ASL A - ASL A - ASL A - ASL A + ASL + ASL + ASL + ASL STA Disk_Status ; BCD JSR ACPTR ; 2nd. digit STA Disk_Msg+1 @@ -2427,7 +2429,7 @@ DOS_U JSR Open_Disk_Buffer @loop LDA Mon_Data+1 - LSR A + LSR BEQ @write JSR Find_next_Sector BNE @error @@ -2628,32 +2630,32 @@ Close_Disk_Buffer ; 0 ; -!set ENC_A = %00010 -!set ENC_B = %00011 -!set ENC_C = %00100 -!set ENC_D = %00101 -!set ENC_E = %00110 -!set ENC_F = %00111 -!set ENC_G = %01000 -!set ENC_H = %01001 -!set ENC_I = %01010 -!set ENC_J = %01011 -!set ENC_K = %01100 -!set ENC_L = %01101 -!set ENC_M = %01110 -!set ENC_N = %01111 -!set ENC_O = %10000 -!set ENC_P = %10001 -!set ENC_Q = %10010 -!set ENC_R = %10011 -!set ENC_S = %11000 -!set ENC_T = %11001 -!set ENC_U = %11010 -!set ENC_V = %11011 -!set ENC_W = %11100 -!set ENC_X = %11101 -!set ENC_Y = %11110 -!set ENC_Z = %11111 +!set ENC_A = %00000010 +!set ENC_B = %00000011 +!set ENC_C = %00000100 +!set ENC_D = %00000101 +!set ENC_E = %00000110 +!set ENC_F = %00000111 +!set ENC_G = %00001000 +!set ENC_H = %00001001 +!set ENC_I = %00001010 +!set ENC_J = %00001011 +!set ENC_K = %00001100 +!set ENC_L = %00001101 +!set ENC_M = %00001110 +!set ENC_N = %00001111 +!set ENC_O = %00010000 +!set ENC_P = %00010001 +!set ENC_Q = %00010010 +!set ENC_R = %00010011 +!set ENC_S = %00011000 +!set ENC_T = %00011001 +!set ENC_U = %00011010 +!set ENC_V = %00011011 +!set ENC_W = %00011100 +!set ENC_X = %00011101 +!set ENC_Y = %00011110 +!set ENC_Z = %00011111 !set ENC_ADC = ENC_A * 64 * 64 + ENC_D * 64 + ENC_C !set ENC_AND = ENC_A * 64 * 64 + ENC_N * 64 + ENC_D @@ -2852,7 +2854,7 @@ LEN_ADM ; 3-0: index of address mode - ( %11...... BBR BBS) +; ( %11...... BBR BBS) !byte $00,$44,$00,$00,$40,$40,$40,$40 ; $00 !byte $00,$41,$00,$00,$80,$80,$80,$c0 ; $08