atari8: started on js platform
This commit is contained in:
parent
e4af92927d
commit
ed7758d7e0
|
@ -203,7 +203,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||
<li class="dropdown dropdown-submenu">
|
||||
<a tabindex="-1" href="#">MAME/Other</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="?platform=atari8-800xl.mame">Atari 800XL (MAME)</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=atari8-800.xlmame">Atari 800XL (MAME)</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=atari8-5200.mame">Atari 5200 (MAME)</a></li>
|
||||
<hr>
|
||||
<li><a class="dropdown-item" href="?platform=vcs.stellerator">Atari 2600 (Stellerator)</a></li>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
|
||||
; Atari 8-bit "Hello World" sample code
|
||||
; Written by Daniel Boris (danlb_2000@yahoo.com)
|
||||
; Modified by Steven Hugg @8bitworkshop
|
||||
|
@ -10,7 +10,7 @@
|
|||
include "atari.inc"
|
||||
|
||||
org $a000 ;Start of left cartridge area
|
||||
Start
|
||||
Start
|
||||
ldx #(dlistend-dlist)
|
||||
dlloop ;Create Display List
|
||||
lda dlist,x ;Get byte
|
||||
|
@ -20,15 +20,16 @@ dlloop ;Create Display List
|
|||
|
||||
lda #$06
|
||||
sta CHACTL ;Set Character Control
|
||||
lda #$84 ;Set color PF2
|
||||
sta COLOR0+2
|
||||
sta COLOR0+4 ; bakground
|
||||
lda #$0F ;Set color PF1
|
||||
sta COLOR0+1
|
||||
lda #$3f
|
||||
lda #$28
|
||||
sta COLOR0+0
|
||||
lda #$0F
|
||||
sta COLOR0+1
|
||||
lda #$d6
|
||||
sta COLOR0+2
|
||||
lda #$58
|
||||
sta COLOR0+3
|
||||
lda #$84
|
||||
sta COLOR0+4 ; bakground
|
||||
lda #$00 ;Set Display list pointer
|
||||
sta SDLSTL ;Shadow DLISTL
|
||||
lda #$10
|
||||
|
@ -36,6 +37,7 @@ dlloop ;Create Display List
|
|||
lda #$e0 ;Set Charcter Set Base
|
||||
sta CHBAS
|
||||
lda #$22 ;Enable DMA
|
||||
lda #$21
|
||||
sta SDMCTL ;Shadow DMACTL
|
||||
|
||||
print
|
||||
|
@ -53,23 +55,38 @@ lower
|
|||
iny ;Next character
|
||||
bne prloop
|
||||
wait
|
||||
lda $d40b
|
||||
lda $d20f
|
||||
sta COLBK
|
||||
nop
|
||||
jmp wait
|
||||
|
||||
;Display list data (starts at $1000)
|
||||
dlist .byte $70,$70,$70 ;24 blank scanlines
|
||||
.byte $42,$00,$18,$02 ;mode 2 @ $1800
|
||||
.byte $43,$00,$18,$02 ;mode 3 @ $1800
|
||||
.byte $44,$00,$18,$02 ;mode 4 @ $1800
|
||||
.byte $45,$00,$18,$02 ;mode 5 @ $1800
|
||||
.byte $46,$00,$18,$06 ;mode 6 @ $1800
|
||||
.byte $47,$00,$18,$06 ;mode 7 @ $1800
|
||||
dlist .byte $70,$70 ;16 blank scanlines
|
||||
.byte $42,$00,$18,$02,$70 ;mode 2 @ $1800
|
||||
.byte $43,$00,$18,$70 ;mode 3 @ $1800
|
||||
.byte $44,$00,$18,$70 ;mode 4 @ $1800
|
||||
.byte $45,$00,$18,$70 ;mode 5 @ $1800
|
||||
.byte $46,$00,$18,$70 ;mode 6 @ $1800
|
||||
.byte $47,$00,$18,$70 ;mode 7 @ $1800
|
||||
.byte $48,$00,$18,$08,$70 ;mode 2 @ $1800
|
||||
.byte $49,$00,$18,$70 ;mode 3 @ $1800
|
||||
.byte $4a,$00,$18,$70 ;mode 4 @ $1800
|
||||
.byte $4b,$00,$18,$70 ;mode 5 @ $1800
|
||||
.byte $4c,$00,$18,$70 ;mode 6 @ $1800
|
||||
.byte $4d,$00,$18,$70 ;mode 7 @ $1800
|
||||
.byte $4e,$00,$18,$70 ;mode 7 @ $1800
|
||||
.byte $4f,$00,$18,$70 ;mode 7 @ $1800
|
||||
.byte $41,$00,$10 ;JMP -> $1000
|
||||
dlistend
|
||||
|
||||
;Text data
|
||||
text1 .byte "Hello World! "
|
||||
text1 .byte "Hejjo World! "
|
||||
.byte $a1,$a2,$a3
|
||||
.repeat 40
|
||||
.byte 32
|
||||
.repend
|
||||
.byte "oops!"
|
||||
.byte 0
|
||||
|
||||
;Cartridge footer
|
|
@ -0,0 +1,839 @@
|
|||
mads 2.1.0
|
||||
Label table:
|
||||
00 0000 _KERNEL_PBI_SUPPORT
|
||||
00 0000 _KERNEL_USE_BOOT_SCREEN
|
||||
00 0001 _KERNEL_PRINTER_SUPPORT
|
||||
00 D800 _AFP
|
||||
00 D800 AFP
|
||||
00 00E6 AFP.DOTFLAG
|
||||
00 00E7 AFP.XINVERT
|
||||
00 00E8 AFP.CIX0
|
||||
00 00E9 AFP.SIGN
|
||||
00 00EA AFP.DIGIT2
|
||||
00 D820 AFP.ISPLUS
|
||||
00 D821 AFP.POSTSIGN
|
||||
00 D835 AFP.TINY_DENORM_LOOP
|
||||
00 D83E AFP.TINY_DENORM_LOOP_EXIT
|
||||
00 D83E AFP.NOT_TINY
|
||||
00 D840 AFP.NEXTDIGIT
|
||||
00 D862 AFP.WRITEHI
|
||||
00 D86A AFP.AFTERWRITE
|
||||
00 D873 AFP.ISDOT
|
||||
00 D87B AFP.TERMCHECK
|
||||
00 D880 AFP.TERM
|
||||
00 D882 AFP.TERM_ROLLBACK_EXP
|
||||
00 D88A AFP.DIGITSHIFT
|
||||
00 D897 AFP.NODIGITSHIFT
|
||||
00 D89A AFP.ERR_CARRYSET
|
||||
00 D89B AFP.ISEXP
|
||||
00 D8AF AFP.ISEXPPLUS
|
||||
00 D8B0 AFP.POSTEXPSIGN
|
||||
00 D8C3 AFP.NOTEXPZERO2
|
||||
00 D8CE AFP.EXPTERM
|
||||
00 D8D1 FP_FMUL_CARRYUP
|
||||
00 D8D1 FP_FMUL_CARRYUP.ROUND_LOOP
|
||||
00 D8D5 FP_FMUL_CARRYUP.DEC_ENTRY
|
||||
00 D8DB FP_TAB_LO_100
|
||||
00 D8E6 _FASC
|
||||
00 D8E6 FASC
|
||||
00 00F7 FASC.DOTCNTR
|
||||
00 00F8 FASC.EXPVAL
|
||||
00 00F9 FASC.TRIMBASE
|
||||
00 D8F4 FASC.NOTZERO
|
||||
00 D906 FASC.ISPOS
|
||||
00 D91A FASC.NOEXP
|
||||
00 D921 FASC.NOT_TINY
|
||||
00 D935 FASC.DIGITLOOP
|
||||
00 D93E FASC.NO_HIDOT
|
||||
00 D949 FASC.WRITELOW
|
||||
00 D952 FASC.NO_LODOT
|
||||
00 D964 FASC.LZLOOP
|
||||
00 D96D FASC.STOP_ZERO_TRIM
|
||||
00 D973 FASC.SKIP_ZERO_TRIM
|
||||
00 D976 FASC.NO_TRAILING_DOT
|
||||
00 D989 FASC.EXPPOS
|
||||
00 D98B FASC.EXPNEG
|
||||
00 D992 FASC.TENSLOOP
|
||||
00 D9A0 FASC.NOEXP2
|
||||
00 D9AA IPF
|
||||
00 D9B4 IPF.BYTELOOP
|
||||
00 D9D2 FPI
|
||||
00 00E6 FPI._ACC0
|
||||
00 00E7 FPI._ACC1
|
||||
00 DA36 FPI.DONE
|
||||
00 DA38 FPI.ERR
|
||||
00 DA39 FP_MUL10
|
||||
00 DA44 ZFR0
|
||||
00 DA46 ZF1
|
||||
00 DA48 ZFL
|
||||
00 DA4A ZFLLOOP
|
||||
00 DA51 LDBUFA
|
||||
00 DA5A FPILL_SHL16
|
||||
00 DA66 FADD
|
||||
00 DA60 FSUB
|
||||
00 00E0 FSUB._DIFFMODE
|
||||
00 DA66 FSUB._FADD
|
||||
00 DA7C FSUB.SWAP
|
||||
00 DA81 FSUB.NOSWAP
|
||||
00 DA96 FSUB.ADD_NO_ROUND
|
||||
00 DA9B FSUB.ADD_LOOP
|
||||
00 DAA6 FSUB.POST_ADD_LOOP
|
||||
00 DAAA FSUB.SUM_CARRYLOOP
|
||||
00 DAB2 FSUB.SUM_CARRYLOOP_START
|
||||
00 DAB8 FSUB.SUM_XIT
|
||||
00 DABB FSUB.DO_SUBTRACT
|
||||
00 DABF FSUB.SUB_LOOP
|
||||
00 DAC7 FSUB.SUB_LOOP_ENTRY
|
||||
00 DACD FP_DECTOBIN
|
||||
00 DAD4 FP_EXIT_SUCCESS
|
||||
00 DAD6 FP_FLD1R_CONST_FMUL
|
||||
00 DAD8 FP_FLD1R_FMUL
|
||||
00 DADB FMUL
|
||||
00 00DF FMUL._OFFSET
|
||||
00 00E6 FMUL._OFFSET2
|
||||
00 DAF9 UNDERFLOW_OVERFLOW
|
||||
00 DAFB FP_EXIT_ZERO
|
||||
00 DAFE FP_ADJUST_EXPONENT
|
||||
00 DAFE FP_ADJUST_EXPONENT.FDIV_ENTRY
|
||||
00 DB03 FP_ADJUST_EXPONENT.FMUL_ENTRY
|
||||
00 DB1C FPCONST_TEN
|
||||
00 DB22 FPCONST_LN10
|
||||
00 DB28 FDIV
|
||||
00 00DB FDIV._DIGIT
|
||||
00 00DC FDIV._INDEX
|
||||
00 DB36 FDIV.DIGITLOOP
|
||||
00 DB43 FDIV.INCLOOP
|
||||
00 DB49 FDIV.DOWNLOOP
|
||||
00 DB79 FDIV.NEXTDIGIT
|
||||
00 DB7C FDIV.BITLOOP
|
||||
00 DB9C FDIV.OK
|
||||
00 DB9E FDIV.ERR
|
||||
00 DBA1 SKPSPC
|
||||
00 DBA5 FP_SKIPCHAR
|
||||
00 DBA5 SKPSPC_LOOP
|
||||
00 DBAC SKPSPC_XIT
|
||||
00 DBAF ISDIGT
|
||||
00 DBAF _ISDIGT
|
||||
00 DBB1 FP_ISDIGIT_Y
|
||||
00 DBB9 FP_FDIV_DECLOOP
|
||||
00 DBB9 FP_FDIV_DECLOOP.DECLOOP
|
||||
00 DBBD FP_FDIV_DECLOOP.UPLOOP
|
||||
00 DBEE FP_FDIV_COMPLETE
|
||||
00 DBF8 FP_FDIV_COMPLETE.NO_NORMSTEP
|
||||
00 DBFF FP_NORMALIZE_CLD
|
||||
00 DC00 FP_NORMALIZE
|
||||
00 DC00 NORMALIZE
|
||||
00 DC02 NORMALIZE.NORMLOOP
|
||||
00 DC13 NORMALIZE.NEED_NORM
|
||||
00 DC17 NORMALIZE.NORMLOOP2
|
||||
00 DC27 NORMALIZE.XIT
|
||||
00 DC29 NORMALIZE.UNDERFLOW2
|
||||
00 DC2A NORMALIZE.UNDERFLOW
|
||||
00 DC2D FP_FDIV_INIT
|
||||
00 DC46 FP_FDIV_INIT.BITLOOP
|
||||
00 DC55 FP_FDIV_INIT.START_WITH_ONES
|
||||
00 DC5E FP_FSUB_CONT
|
||||
00 DC62 FP_FSUB_CONT.BORROW_LOOP
|
||||
00 DC6A FP_FSUB_CONT.BORROW_LOOP_START
|
||||
00 DC70 FP_FSUB_CONT.DIFF_BORROW
|
||||
00 DC7F FP_FSUB_CONT.SUB_XIT
|
||||
00 DC7F FP_FSUB_CONT.NORM_LOOP
|
||||
00 DC97 FP_FSUB_CONT.NO_ROUND
|
||||
00 DC9A FP_FSUB_CONT.NEED_NORM
|
||||
00 DC9C FP_FSUB_CONT.SCAN_LOOP
|
||||
00 DCA5 FP_FSUB_CONT.UNDERFLOW2
|
||||
00 DCA6 FP_FSUB_CONT.UNDERFLOW
|
||||
00 DCAA FP_FSUB_CONT.FOUND_POS
|
||||
00 DCAC FP_FSUB_CONT.SHIFT_LOOP
|
||||
00 DCB5 FP_FSUB_CONT.CLEAR_LOOP
|
||||
00 DCBE FP_FSUB_CONT.ROUND_UP
|
||||
00 DCC3 FP_FMUL_INNERLOOP
|
||||
00 00DF FP_FMUL_INNERLOOP._OFFSET
|
||||
00 00E6 FP_FMUL_INNERLOOP._OFFSET2
|
||||
00 DCCC FP_FMUL_INNERLOOP.OFFLOOP
|
||||
00 DCCE FP_FMUL_INNERLOOP.OFFLOOP2
|
||||
00 DCFF FP_FMUL_INNERLOOP.NO_CARRY
|
||||
00 DCFF FP_FMUL_INNERLOOP.NOADD
|
||||
00 DD35 FP_FMUL_INNERLOOP.RENORM_NEEDED
|
||||
00 DD3E FP_PLYEVL_10
|
||||
00 DD40 PLYEVL
|
||||
00 DD50 PLYEVL.LOOP
|
||||
00 DD73 PLYEVL.XIT
|
||||
00 DD74 FP_SWAP
|
||||
00 DD76 FP_SWAP.SWAPLOOP
|
||||
00 DD87 FLD0R_ZP
|
||||
00 DD89 FLD0R
|
||||
00 DD8D FLD0P
|
||||
00 DD8F FLD0PLOOP
|
||||
00 DD98 FLD1R
|
||||
00 DD9C FLD1P
|
||||
00 DD9E FLD1PLOOP
|
||||
00 DDA7 FST0R
|
||||
00 DDAB FST0P
|
||||
00 DDAD FST0PLOOP
|
||||
00 DDB6 FMOVE
|
||||
00 DDB8 FMOVELOOP
|
||||
00 DDCC EXP10
|
||||
00 DDC0 EXP
|
||||
00 DDCC EXP._EXP10
|
||||
00 DDDC EXP.ABS_TOO_BIG
|
||||
00 DDE4 EXP.ABS_LARGE
|
||||
00 DDF8 EXP.ABS_OK
|
||||
00 DE0C EXP.EVEN
|
||||
00 DE27 EXP.ERR2
|
||||
00 DE27 EXP.XIT2
|
||||
00 DE28 EXP.COEFF
|
||||
00 DE64 FPCONST_LOG10_E
|
||||
00 DE6A FP_CARRY_EXPUP
|
||||
00 DE6E FP_CARRY_EXPUP.SUM_SHIFTLOOP
|
||||
00 DE79 FP_FMUL_FR0_TO_BINFR2
|
||||
00 DE7B FP_FMUL_FR0_TO_BINFR2.LOOP
|
||||
00 DE8F FP_RTS1
|
||||
00 DE95 REDRNG
|
||||
00 DE95 _REDRNG
|
||||
00 DE8F _REDRNG.FAIL
|
||||
00 DED1 LOG10
|
||||
00 DECD LOG
|
||||
00 DED1 LOG._LOG10
|
||||
00 DED4 LOG.ENTRY
|
||||
00 DEF1 LOG.MID_RANGE
|
||||
00 DEF8 LOG.ADJUST_EXPONENT
|
||||
00 DEFC LOG.POST_RANGE_ADJUST
|
||||
00 DF2F LOG.EXPADJ_POSITIVE
|
||||
00 DF46 LOG.ERR
|
||||
00 DF47 LOG.XIT2
|
||||
00 DF47 LOG.ERR2
|
||||
00 DF48 FP_TAB_LO_1000
|
||||
00 DF52 FP_TAB_HI_1000
|
||||
00 DF5C FP_TAB_HI_100
|
||||
00 DF66 FP_TAB_HI_10000
|
||||
00 DF6C FPCONST_HALF
|
||||
00 DF72 FPCONST_LOG10COEFF
|
||||
00 DFAE ATNCOEF
|
||||
00 DFEA FP_ONE
|
||||
00 DFF0 FP_PI4
|
||||
00 DFF6 FP_DECTOBIN_TAB
|
||||
00 E400 EDITRV
|
||||
00 E410 SCRENV
|
||||
00 E420 KEYBDV
|
||||
00 E430 PRINTV
|
||||
00 E440 CASETV
|
||||
00 E450 DISKIV
|
||||
00 E453 DSKINV
|
||||
00 E456 CIOV
|
||||
00 E459 SIOV
|
||||
00 E45C SETVBV
|
||||
00 E45F SYSVBV
|
||||
00 E462 XITVBV
|
||||
00 E465 SIOINV
|
||||
00 E468 SENDEV
|
||||
00 E46B INTINV
|
||||
00 E46E CIOINV
|
||||
00 E471 BLKBDV
|
||||
00 E474 WARMSV
|
||||
00 E477 COLDSV
|
||||
00 E47A RBLOKV
|
||||
00 E47D CSOPIV
|
||||
00 E480 BLACKBOARD
|
||||
00 E494 BLACKBOARD.ECHOLOOP
|
||||
00 E4A6 BLACKBOARD_BANNER
|
||||
00 E4C0 KNOWNRTS
|
||||
00 E4C1 REVERSEDBITMASKS
|
||||
00 E4C9 CIOEXITSUCCESS
|
||||
00 E4CB CIOEXITSUCCESS.EXIT_NOT_SUPPORTED
|
||||
00 E4CB CIOEXITNOTSUPPORTED
|
||||
00 E4CC BELL
|
||||
00 E4CF BELL.SOUNDLOOP
|
||||
00 E4D2 BELL.DELAY
|
||||
00 E4EA CIOINIT
|
||||
00 E4ED CIOINIT.IOCB_LOOP
|
||||
00 E4FC CIO
|
||||
00 E503 CIO.XIT
|
||||
00 E50E CIO.PROCESS
|
||||
00 E516 CIO.CMDINVALID
|
||||
00 E519 CIO.VALIDIOCB
|
||||
00 E528 CIO.NOT_OPEN
|
||||
00 E534 CIO.NOT_OPEN_HANDLER
|
||||
00 E536 CIO.IGNOREOPEN
|
||||
00 E537 CIO.PREOPEN
|
||||
00 E544 CIO.ISOPEN
|
||||
00 E555 CIO.SKIP_PERM_CHECK
|
||||
00 E560 CIO.LOAD_VECTOR
|
||||
00 E57B CIO.PERM_CHECK_FAIL
|
||||
00 E580 CIO.CMDGETSTATUSSOFTOPEN
|
||||
00 E583 CIO.CMDSPECIALSOFTOPEN
|
||||
00 E585 CIO.INVOKE_AND_SOFT_CLOSE_XIT
|
||||
00 E588 CIO.CMDOPEN
|
||||
00 E590 CIO.NOTALREADYOPEN
|
||||
00 E593 CIO.OPEN_ENTRY
|
||||
00 E5A8 CIO.OPENOK
|
||||
00 E6C2 CIO.CMDGETSTATUS
|
||||
00 E5C6 CIO.CMDSPECIAL
|
||||
00 E5D6 CIO.CMDGETRECORD
|
||||
00 E5D8 CIO.CMDGETRECORDLOOP
|
||||
00 E5D8 CIO.CMDGETRECORDGETBYTE
|
||||
00 E5EE CIO.CMDGETRECORDBUFFERFULL
|
||||
00 E5FB CIO.CMDGETRECORDXIT
|
||||
00 E5FB CIO.CMDGETPUTDONE
|
||||
00 E61D CIO.CMDGETCHARS
|
||||
00 E61F CIO.CMDGETCHARSLOOP
|
||||
00 E631 CIO.CMDGETCHARSERROR
|
||||
00 E634 CIO.CMDGETCHARSSINGLE
|
||||
00 E63A CIO.CMDPUTRECORD
|
||||
00 E63C CIO.CMDPUTRECORDLOOP
|
||||
00 E653 CIO.CMDPUTRECORDEOL
|
||||
00 E658 CIO.CMDPUTRECORDERROR
|
||||
00 E658 CIO.CMDPUTRECORDDONE
|
||||
00 E65B CIO.CMDPUTCHARS
|
||||
00 E65D CIO.CMDPUTCHARSLOOP
|
||||
00 E66F CIO.CMDPUTCHARSSINGLE
|
||||
00 E672 CIO.ADVANCE_POINTERS
|
||||
00 E685 CIO.CMDCLOSE
|
||||
00 E688 CIO.CMDCLOSEPROVISIONAL
|
||||
00 E693 CIO.PERM_CHECK_TABLE
|
||||
00 E69E CIO.VECTOR_PRELOAD_TABLE
|
||||
00 E6A9 CIO.COMMAND_TABLE_LO
|
||||
00 E6B4 CIO.COMMAND_TABLE_HI
|
||||
00 E6BF CIOINVOKE
|
||||
00 E6C2 CIOINVOKE.INVOKE_VECTOR
|
||||
00 E6C4 CIOINVOKE.INVOKE_VECTOR_CIOCHR
|
||||
00 E6D1 CIOLOADZIOCB
|
||||
00 E6D3 CIOLOADZIOCB.COPYTOZIOCB
|
||||
00 E6E0 CIOPARSEPATH
|
||||
00 E6F5 CIOPARSEPATH.NODEVNUM
|
||||
00 E6FC CIOPARSEPATH.UNKNOWN_DEVICE
|
||||
00 E700 CIOPARSEPATH.FOUND
|
||||
00 E701 CIOSETPUTBYTECLOSED
|
||||
00 E70C CIOFINDHANDLER
|
||||
00 E710 CIOFINDHANDLER.FINDHANDLER
|
||||
00 E71A CIOFINDHANDLER.FOUNDHANDLER
|
||||
00 E761 VBIEXIT
|
||||
00 E71D VBISTAGE1
|
||||
00 E772 VBISTAGE2
|
||||
00 E71D VBIPROCESS
|
||||
00 E71D VBIPROCESS.STAGE_1
|
||||
00 E729 VBIPROCESS.CLOCK_DONE
|
||||
00 E737 VBIPROCESS.ATTRACT_OFF
|
||||
00 E750 VBIPROCESS.TIMER1_LOBYTEZERO
|
||||
00 E75D VBIPROCESS.TIMER1_DONE
|
||||
00 E761 VBIPROCESS.XIT
|
||||
00 E765 VBIPROCESS.EXIT_A
|
||||
00 E766 VBIPROCESS.EXIT_NONE
|
||||
00 E767 VBIPROCESS.TIMER1_DISPATCH
|
||||
00 E76A VBIPROCESS.NO_CRITIC
|
||||
00 E772 VBIPROCESS.STAGE_2
|
||||
00 E79C VBIPROCESS.COLORLOOP
|
||||
00 E7B5 VBIPROCESS.TIMER_N_LOOP
|
||||
00 E7BF VBIPROCESS.TIMER_N_NOT_EXPIRED
|
||||
00 E7C2 VBIPROCESS.TIMER_N_NOT_RUNNING
|
||||
00 E7E1 VBIPROCESS.NO_REPEAT_KEY
|
||||
00 E7E6 VBIPROCESS.NO_REPEAT
|
||||
00 E7EE VBIPROCESS.NO_KEYDEL
|
||||
00 E7F0 VBIPROCESS.POT_LOOP
|
||||
00 E800 VBIPROCESS.TRIG_LOOP
|
||||
00 E82F VBIPROCESS.TIMER2DISPATCH
|
||||
00 E832 VBIPROCESS.DO_STICK_PTRIGS
|
||||
00 E851 VBIDECREMENTTIMER
|
||||
00 E85D VBIDECREMENTTIMER.LOZERO_HINONZERO
|
||||
00 E860 VBIDECREMENTTIMER.LONONZERO
|
||||
00 E868 VBIDECREMENTTIMER.STILL_RUNNING
|
||||
00 E869 VBISETVECTOR
|
||||
00 E87F INTINITINTERRUPTS
|
||||
00 E885 INTDISPATCHNMI
|
||||
00 E88D INTDISPATCHNMI.IS_SYSTEM_RESET
|
||||
00 E890 INTDISPATCHNMI.NOT_DLI
|
||||
00 E8A2 INTDISPATCHIRQ
|
||||
00 E765 INTEXITHANDLER_A
|
||||
00 E766 INTEXITHANDLER_NONE
|
||||
00 E8CD IRQHANDLER
|
||||
00 E8A5 _IRQHANDLER
|
||||
00 E8A5 _IRQHANDLER.DISPATCH_SEROUT
|
||||
00 E8AD _IRQHANDLER.CHECK_SEROC
|
||||
00 E8B2 _IRQHANDLER.DISPATCH_SEROC
|
||||
00 E8B5 _IRQHANDLER.DISPATCH_TIMER1
|
||||
00 E8BD _IRQHANDLER.DISPATCH_TIMER2
|
||||
00 E8C5 _IRQHANDLER.DISPATCH_TIMER4
|
||||
00 E8CD _IRQHANDLER._ENTRY
|
||||
00 E8E2 _IRQHANDLER.NOT_SERIN
|
||||
00 E8EE _IRQHANDLER.NOT_SEROC
|
||||
00 E91C _IRQHANDLER.NOT_BRK
|
||||
00 E920 _IRQHANDLER.DISPATCH_KEYBOARD
|
||||
00 E928 _IRQHANDLER.DISPATCH_BREAK
|
||||
00 E930 _IRQHANDLER.DISPATCH_PIA_IRQA
|
||||
00 E936 _IRQHANDLER.DISPATCH_PIA_IRQB
|
||||
00 E93C IRQACKNOWLEDGE
|
||||
00 E945 SIOINIT
|
||||
00 E950 SIO
|
||||
00 E976 SIO.RETRY_COMMAND
|
||||
00 E97B SIO.RETRY_COMMAND_2
|
||||
00 E9A4 SIO.CMDDELAY
|
||||
00 E9C9 SIO.COMMAND_ERROR
|
||||
00 E9D3 SIO.ACKOK
|
||||
00 E9E5 SIO.NO_SEND_FRAME
|
||||
00 EA1C SIO.DEVICE_ERROR
|
||||
00 EA1E SIO.TRANSFER_ERROR
|
||||
00 EA29 SIO.DEVICE_RETRIES_EXHAUSTED
|
||||
00 EA29 SIO.XIT
|
||||
00 EA3A SIO.LEAVE_CASSETTE_AUDIO_ON
|
||||
00 EA3E SIO.XIT_PBI
|
||||
00 EA4A SIO.COMPLETEOK
|
||||
00 EA57 SIO.NO_RECEIVE_FRAME
|
||||
00 EA65 SIOSETTIMEOUTVECTOR
|
||||
00 EA70 SIOWAITFORACK
|
||||
00 EA98 SIOWAITFORACK.XIT
|
||||
00 EAB8 SIOINITHARDWARE
|
||||
00 EA99 SIOSENDENABLE
|
||||
00 EAA4 SIOSENDENABLE.NO_IRQ_SETUP
|
||||
00 EAB8 SIOSENDENABLE.INIT_HARDWARE
|
||||
00 EAC1 SIOSENDENABLE.NOT_CASSETTE
|
||||
00 EAC1 SIOINITPOKEYWITHREGOFFSETX
|
||||
00 EAE8 SIOSENDENABLE.NO_NOISE
|
||||
00 EAEC SIOSENDENABLE.REGDATA
|
||||
00 EAEC SIOSENDENABLE.REGDATA_NORMAL
|
||||
00 EAF5 SIOSENDENABLE.REGDATA_CASSETTE_WRITE
|
||||
00 EAFE SIOSENDENABLE.REGDATA_CASSETTE_READ
|
||||
00 EB07 SIOSETUPBUFFERPOINTERS
|
||||
00 EB1D SIOSEND
|
||||
00 EB31 SIOSEND.WAIT
|
||||
00 EB3B SIOSEND.BREAK_DETECTED
|
||||
00 EB3F SIOSEND.SEND_COMPLETED
|
||||
00 EB4C SIORECEIVE
|
||||
00 EB4E SIORECEIVE.USE_CHECKSUM
|
||||
00 EB76 SIORECEIVE.WAIT
|
||||
00 EB84 SIORECEIVE.ERROR
|
||||
00 EB86 SIORECEIVE.TIMEOUT
|
||||
00 EB8A SIORECEIVESTOP
|
||||
00 EB95 SIOINPUTREADYHANDLER
|
||||
00 EBC1 SIOINPUTREADYHANDLER.XIT
|
||||
00 EBC3 SIOINPUTREADYHANDLER.RECEIVECHECKSUM
|
||||
00 EBCA SIOINPUTREADYHANDLER.SIGNAL_END
|
||||
00 EBD0 SIOINPUTREADYHANDLER.CHECKSUM_FAIL
|
||||
00 EBD6 SIOINPUTREADYHANDLER.SKIPCHECKSUM
|
||||
00 EBDE SIOOUTPUTREADYHANDLER
|
||||
00 EBE4 SIOOUTPUTREADYHANDLER.ADDRCC
|
||||
00 EC01 SIOOUTPUTREADYHANDLER.DOCHECKSUM
|
||||
00 EC17 SIOOUTPUTCOMPLETEHANDLER
|
||||
00 EC26 SIOOUTPUTCOMPLETEHANDLER.XIT
|
||||
00 EC28 SIOCOUNTDOWN1HANDLER
|
||||
00 EC2E SIOCASSETTE
|
||||
00 EC3E SIOCASSETTE.ISWRITE
|
||||
00 EC44 SIOCASSETTE.ISREAD
|
||||
00 EC4A SIOCASSETTEWRITEFRAME
|
||||
00 EC5B SIOCASSETTEREADFRAME
|
||||
00 EC7F SIOCASSETTEREADFRAME.WAITZEROSTART
|
||||
00 EC96 SIOCASSETTEREADFRAME.WAITONE
|
||||
00 ECA3 SIOCASSETTEREADFRAME.WAITZERO
|
||||
00 ECAF SIOCASSETTEREADFRAME.TIMEOUT
|
||||
00 ECB4 SIOCASSETTEREADFRAME.WAITDONE
|
||||
00 ECEE SIOCASSETTEREADFRAME.ADD_FRAME_LOOP
|
||||
00 ECF8 SIOCASSETTEREADFRAME.NO_FRAMES
|
||||
00 ED35 SIOCASSETTEREADFRAME.AALOOP
|
||||
00 ED49 SIOCASSETTEREADFRAME.READTIMER
|
||||
00 ED57 SIOCASSETTEREADFRAME.CORRECT_TIME
|
||||
00 ED5F SIOCASSETTEREADFRAME.TIME_OK
|
||||
00 ED60 DISKINIT
|
||||
00 ED61 DISKHANDLER
|
||||
00 ED94 DISKHANDLER.XIT
|
||||
00 ED95 DISKHANDLER.NOTSTATUS
|
||||
00 EDAD DISKHANDLER.DO_READ
|
||||
00 EDAF DISKHANDLER.DO_IO
|
||||
00 EDBC DISKHANDLER.DO_WRITE
|
||||
00 EDC0 PRINTERINIT
|
||||
00 EDC6 PRINTEROPEN
|
||||
00 EDD8 PRINTEROPEN.XIT
|
||||
00 EDDB PRINTERCLOSE
|
||||
00 EDE2 PRINTERPUTBYTE
|
||||
00 EDDB _PRINTERPUTBYTE
|
||||
00 EDDB _PRINTERPUTBYTE.CLOSE_ENTRY
|
||||
00 EDE2 _PRINTERPUTBYTE.PUT_ENTRY
|
||||
00 EDF7 _PRINTERPUTBYTE.DO_EOL
|
||||
00 EDF9 _PRINTERPUTBYTE.FILL_LOOP
|
||||
00 EE04 _PRINTERPUTBYTE.FILL_DONE
|
||||
00 EE1D _PRINTERPUTBYTE.DO_IO
|
||||
00 EE26 _PRINTERPUTBYTE.IOCBDAT
|
||||
00 EE30 PRINTERGETSTATUS
|
||||
00 EE46 PRINTERGETSTATUS.ERROR
|
||||
00 EE47 PRINTERGETSTATUS.IOCBDAT
|
||||
00 E4CB PRINTERGETBYTE
|
||||
00 E4CB PRINTERSPECIAL
|
||||
00 EE51 CASSETTEINIT
|
||||
00 EE6F CASSETTEOPENREAD
|
||||
00 EE5C CASSETTEOPEN
|
||||
00 EE6F CASSETTEOPEN.DO_OPEN_READ
|
||||
00 EE6F CASSETTEOPEN.FOUND_READ_MODE
|
||||
00 EE71 CASSETTEOPEN.FOUND_WRITE_MODE
|
||||
00 EE88 CASSETTEOPEN.ONE_PING_ONLY
|
||||
00 EE9D CASSETTEOPEN.NO_WRITE_INIT
|
||||
00 EEB0 CASSETTEOPEN.ABORTED
|
||||
00 EEB1 CASSETTECLOSE
|
||||
00 EEBD CASSETTECLOSE.NOPARTIAL
|
||||
00 EEC0 CASSETTECLOSE.NOTWRITE
|
||||
00 EED2 CASSETTEGETBYTE
|
||||
00 EED6 CASSETTEGETBYTE.FETCHBYTE
|
||||
00 EEE5 CASSETTEGETBYTE.NOBYTES
|
||||
00 EEF3 CASSETTEGETBYTE.XIT_EOF
|
||||
00 EEF5 CASSETTEGETBYTE.ERROR
|
||||
00 EEF6 CASSETTEGETBYTE.NOTEOFBYTE
|
||||
00 EF00 CASSETTEGETBYTE.INIT_NEW_BLOCK
|
||||
00 EF06 CASSETTEGETBYTE.NOT_FULL_BLOCK
|
||||
00 EF0F CASSETTEGETBYTE.NOT_PARTIAL_BLOCK
|
||||
00 EF12 CASSETTEPUTBYTE
|
||||
00 EF22 CASSETTEFLUSH
|
||||
00 EF32 CASSETTEFLUSH.NOT_EMPTY
|
||||
00 EF3E CASSETTEFLUSH.IS_COMPLETE
|
||||
00 EF3E CASSETTEFLUSH.IS_EMPTY
|
||||
00 E4C9 CASSETTEGETSTATUS
|
||||
00 E4CB CASSETTESPECIAL
|
||||
00 EF56 CASSETTEDOIO
|
||||
00 EF52 CASSETTEREADBLOCK
|
||||
00 EF52 _CASSETTEDOIO
|
||||
00 EF52 _CASSETTEDOIO.READ_BLOCK
|
||||
00 EF56 _CASSETTEDOIO.DO_IO
|
||||
00 EF95 _CASSETTEDOIO.NO_PWT
|
||||
00 EF9A _CASSETTEDOIO.ROLLING_STOP
|
||||
00 EFA3 CASSETTEWAIT
|
||||
00 EF9D CASSETTEWAITLONGSHORTCHECK
|
||||
00 EFA3 CASSETTEWAITLONGSHORTCHECK.NORMAL_ENTRY
|
||||
00 EFBB CASSETTEWAITLONGSHORTCHECK.WAIT_TABLE_LO
|
||||
00 EFC2 CASSETTEWAITLONGSHORTCHECK.WAIT_TABLE_HI
|
||||
00 EFC9 CASSETTEBELL
|
||||
00 EFCC CASSETTEBELL.SOUNDLOOP
|
||||
00 EFCF CASSETTEBELL.DELAY
|
||||
00 EFE6 INITHANDLERTABLE
|
||||
00 EFF5 _INITRESET
|
||||
00 EFF5 _INITRESET.RUN_DIAG
|
||||
00 EFF8 INITRESET
|
||||
00 EFFD INITCOLDSTART
|
||||
00 EFFD _INITRESET.COLD_BOOT
|
||||
00 F021 _INITRESET.NOT_DIAG
|
||||
00 F031 _INITRESET.CLEARLOOP
|
||||
00 F049 INITWARMSTART
|
||||
00 F064 INITWARMSTART.DBCLEAR
|
||||
00 F070 INITHARDWARERESET
|
||||
00 F073 INITHARDWARERESET.HWCLEAR
|
||||
00 F09C INITMEMORY
|
||||
00 F0A2 INITMEMORY.PAGELOOP
|
||||
00 F0B7 INITMEMORY.NOTRAM
|
||||
00 F0BA INITVECTORTABLE1
|
||||
00 F0D2 INITVECTORTABLE1.END
|
||||
00 F0D2 INITVECTORTABLE2
|
||||
00 F0D8 KRPDEL_TABLE
|
||||
00 F0DA INITENVIRONMENT
|
||||
00 F168 INITENVIRONMENT.SKIPCARTBINIT
|
||||
00 F189 INITENVIRONMENT.SKIPCARTAINIT
|
||||
00 F1A7 INITENVIRONMENT.WAITVBL
|
||||
00 F1BA INITENVIRONMENT.REINITCAS
|
||||
00 F1C3 INITENVIRONMENT.POSTCASBOOT
|
||||
00 F1D1 INITENVIRONMENT.HAVE_CART_B
|
||||
00 F1D8 INITENVIRONMENT.HAVE_CART_A
|
||||
00 F1DB INITENVIRONMENT.NO_CART_A
|
||||
00 F1DE INITENVIRONMENT.BOOT_DISK
|
||||
00 F1E4 INITENVIRONMENT.REINITDISK
|
||||
00 F1EC INITENVIRONMENT.POST_DISK_BOOT
|
||||
00 F1EC INITENVIRONMENT.SKIP_DISK_BOOT
|
||||
00 F1FF INITENVIRONMENT.NOBOOTCARTA
|
||||
00 F20B INITENVIRONMENT.NOBOOTCARTB
|
||||
00 F20E INITENVIRONMENT.INITCARTA
|
||||
00 F211 INITENVIRONMENT.INITCARTB
|
||||
00 F214 INITENVIRONMENT.SCREENEDITORNAME
|
||||
00 F215 INITDISKBOOT
|
||||
00 F218 INITCASSETTEBOOT
|
||||
00 F21C BOOTDISK
|
||||
00 F249 BOOTDISK.SECTOR1_OK
|
||||
00 F24E BOOTDISK.SECTORLOOP
|
||||
00 F263 BOOTDISK.FAIL
|
||||
00 F267 BOOTDISK.XIT
|
||||
00 F268 BOOTDISK.FAILMSG
|
||||
00 F26E BOOTDISK.LOADDONE
|
||||
00 F27B BOOTCASSETTE
|
||||
00 F28C BOOTCASSETTE.BLOCK_LOOP
|
||||
00 F2AB BOOTCASSETTE.LOAD_FAILURE
|
||||
00 F2B6 BOOTINITHEADERS
|
||||
00 F2D3 BOOTRUNLOADER
|
||||
00 F2E3 BOOTCOPYBLOCK
|
||||
00 F2F8 BOOTSHOWERROR
|
||||
00 F2FA BOOTSHOWERROR.MSGLOOP
|
||||
00 F308 BOOTSHOWERROR.ERRORMSG
|
||||
00 F9C7 SCREENHEIGHTSSPLIT
|
||||
00 F9C8 SCREENPIXELWIDTHSLO
|
||||
00 F3F6 SCREENOPEN
|
||||
00 F3F2 SCREENOPENMODE0
|
||||
00 F3EE SCREENOPENGR0
|
||||
00 F3F2 SCREENOPENGR0.USE_MODE0
|
||||
00 F3F6 SCREENOPENGR0.USE_IOCB
|
||||
00 F405 SCREENOPENGR0.CLEAR_PARMS
|
||||
00 F42E SCREENOPENGR0.KILL_SPLIT
|
||||
00 F430 SCREENOPENGR0.NOT_GTIA_MODE_OR_GR0
|
||||
00 F44C SCREENOPENGR0.ALLOC_FAIL
|
||||
00 F452 SCREENOPENGR0.CANT_REOPEN_GR0
|
||||
00 F455 SCREENOPENGR0.PF_ALLOC_OK
|
||||
00 F468 SCREENOPENGR0.NO_DLIST_PAGE_CROSSING
|
||||
00 F496 SCREENOPENGR0.ALLOC_OK
|
||||
00 F4D4 SCREENOPENGR0.NOT_GR11
|
||||
00 F4F2 SCREENOPENGR0.NOSPLIT
|
||||
00 F52C SCREENOPENGR0.NO_CURSOR
|
||||
00 F532 SCREENOPENGR0.SETUP_DISPLAY
|
||||
00 F56D SCREENOPENGR0.NO_LMS_SPLIT
|
||||
00 F56D SCREENOPENGR0.WRITE_REPEAT
|
||||
00 F573 SCREENOPENGR0.NO_CLEAR
|
||||
00 F574 SCREENOPENGR0.WRITE_WITH_ZP_ADDRESS
|
||||
00 F582 SCREENOPENGR0.TRY_CLEAR
|
||||
00 F589 SCREENOPENGR0.STANDARD_COLORS
|
||||
00 F58D SCREENBITPOSFLIPTAB
|
||||
00 F591 SCREENINIT
|
||||
00 F59F SCREENGETBYTE
|
||||
00 F5D9 SCREENGETBYTE.MODE0
|
||||
00 F5DE SCREENGETBYTE.XIT
|
||||
00 F5DF SCREENPUTBYTE
|
||||
00 F5F3 SCREENPUTBYTE.ERROR
|
||||
00 F5F4 SCREENPUTBYTE.GRAPHICS_EOL
|
||||
00 F5F7 SCREENPUTBYTE.NOT_CLEAR
|
||||
00 F5FC SCREENPUTBYTE.NOT_CLEAR_2
|
||||
00 F624 SCREENPUTBYTE.MODE_0
|
||||
00 F63D SCREENPUTBYTE.NOYWRAP
|
||||
00 F640 SCREENPUTBYTE.NOT_EOL
|
||||
00 F675 SCREENPUTBYTE.NO_SCROLL
|
||||
00 F682 SCREENPUTBYTE.RECOMPUTE_SHOW_CURSOR_EXIT
|
||||
00 F682 SCREENPUTBYTE.POST_SCROLL
|
||||
00 F685 SCREENPUTBYTE.NOWRAP
|
||||
00 F688 SCREENPUTBYTE.CHECK_EXTEND
|
||||
00 E4C9 SCREENGETSTATUS
|
||||
00 F69B SCREENFOLDCOLOR
|
||||
00 F6B8 SCREENFOLDCOLOR.FOLD_BYTE
|
||||
00 F6B8 SCREENCONVERTATASCIITOINTERNAL
|
||||
00 F6C3 SCREENSPECIAL
|
||||
00 F6CE SCREENDRAWLINEFILL
|
||||
00 F6FF SCREENDRAWLINEFILL.GOING_DOWN
|
||||
00 F724 SCREENDRAWLINEFILL.GOING_RIGHT
|
||||
00 F755 SCREENDRAWLINEFILL.DX_LARGER
|
||||
00 F75F SCREENDRAWLINEFILL.NOT_EMPTY
|
||||
00 F762 SCREENDRAWLINEFILL.DONE
|
||||
00 F76C SCREENDRAWLINEFILL.SKIP_SHOWCURSOR
|
||||
00 F76F SCREENDRAWLINEFILL.FILL_DONE
|
||||
00 F774 SCREENDRAWLINEFILL.DO_FILL
|
||||
00 F77A SCREENDRAWLINEFILL.SHIFT_LO_TAB
|
||||
00 F77E SCREENDRAWLINEFILL.LEFT_SHIFT_4
|
||||
00 F780 SCREENDRAWLINEFILL.LEFT_SHIFT_2
|
||||
00 F781 SCREENDRAWLINEFILL.LEFT_SHIFT_1
|
||||
00 F784 SCREENDRAWLINEFILL.LEFT_SHIFT_8
|
||||
00 F789 SCREENDRAWLINEFILL.LEFT_SHIFT_OK
|
||||
00 F78B SCREENDRAWLINEFILL.FILL_RIGHT_4
|
||||
00 F78D SCREENDRAWLINEFILL.FILL_RIGHT_2
|
||||
00 F78E SCREENDRAWLINEFILL.FILL_RIGHT_1
|
||||
00 F791 SCREENDRAWLINEFILL.FILL_RIGHT_8
|
||||
00 F79A SCREENDRAWLINEFILL.FILL_RIGHT_OK
|
||||
00 F79E SCREENDRAWLINEFILL.FILL_LOOP
|
||||
00 F7AD SCREENDRAWLINEFILL.FILL_START
|
||||
00 F7B2 SCREENDRAWLINEFILL.RIGHT_SHIFT_4
|
||||
00 F7B4 SCREENDRAWLINEFILL.RIGHT_SHIFT_2
|
||||
00 F7B5 SCREENDRAWLINEFILL.RIGHT_SHIFT_1
|
||||
00 F7B8 SCREENDRAWLINEFILL.RIGHT_SHIFT_8
|
||||
00 F7BC SCREENDRAWLINEFILL.RIGHT_SHIFT_OK
|
||||
00 F7BC SCREENDRAWLINEFILL.POST_XINC
|
||||
00 F7BE SCREENDRAWLINEFILL.NO_XINC
|
||||
00 F7CF SCREENDRAWLINEFILL.NEXT_PIXEL
|
||||
00 F7D7 SCREENDRAWLINEFILL.NEXT_PIXEL_2
|
||||
00 F7D9 SCREENDRAWLINEFILL.PIXEL_LOOP
|
||||
00 F7EB SCREENDRAWLINEFILL.DO_YINC
|
||||
00 F7ED SCREENDRAWLINEFILL.YINC_LOOP
|
||||
00 F7FE SCREENDRAWLINEFILL.NO_YINC
|
||||
00 F817 SCREENCLEAR
|
||||
00 F825 SCREENCLEAR.IS_TEXT_WINDOW
|
||||
00 F82F SCREENCLEAR.IS_GR0
|
||||
00 F83F SCREENCLEAR.LOOP
|
||||
00 F855 SCREENCLEAR.IS_GRAPHIC_SCREEN
|
||||
00 F85B SCREENINSERTLINE
|
||||
00 F85A SCREENINSERTPHYSLINE
|
||||
00 F85B SCREENINSERTPHYSLINE.USE_C
|
||||
00 F86B SCREENINSERTPHYSLINE.LINE_LOOP
|
||||
00 F86D SCREENINSERTPHYSLINE.CHAR_LOOP
|
||||
00 F874 SCREENINSERTPHYSLINE.LINE_LOOP_START
|
||||
00 F88A SCREENINSERTPHYSLINE.NO_COPY
|
||||
00 F88E SCREENINSERTPHYSLINE.CLEAR_LOOP
|
||||
00 F8BE SCREENHIDECURSOR
|
||||
00 F8C6 SCREENHIDECURSOR.NO_CURSOR
|
||||
00 F8C7 SCREENCHECKPOSITION
|
||||
00 F8D4 SCREENCHECKPOSITION.ROWCHECK_GR0
|
||||
00 F8DC SCREENCHECKPOSITION.RMARGN_OK
|
||||
00 F8E1 SCREENCHECKPOSITION.INVALID_POSITION
|
||||
00 F8EF SCREENCHECKPOSITION.ROWCHECK_PASS
|
||||
00 F908 SCREENCHECKPOSITION.NO_BREAK
|
||||
00 F90A EDITORSWAPTOTEXT
|
||||
00 F90F SCREENSWAP
|
||||
00 F918 EDITORSWAPTOTEXT.SWAP_LOOP
|
||||
00 F92A EDITORSWAPTOTEXT.ALREADY_THERE
|
||||
00 F92C SCREENCOMPUTEADDR
|
||||
00 F944 SCREENCOMPUTETOADDR
|
||||
00 F942 SCREENCOMPUTETOADDRX0
|
||||
00 F944 SCREENCOMPUTETOADDRX0.WITH_X
|
||||
00 F94C SCREENCOMPUTERANGESIZE
|
||||
00 F96C SCREENCOMPUTERANGESIZE.SHIFT_LOOP
|
||||
00 F978 SCREENALIGNPIXEL
|
||||
00 F973 SCREENSETUPPLOTPIXEL
|
||||
00 F978 SCREENSETUPPLOTPIXEL.RSHIFT_MASK
|
||||
00 F97B SCREENSETUPPLOTPIXEL.XMASKSHIFT_LOOP
|
||||
00 F97F SCREENSETUPPLOTPIXEL.XMASKSHIFT_DONE
|
||||
00 F982 SCREENSETUPPIXELADDR
|
||||
00 F98B SCREENSETUPPIXELADDR.PHASE2
|
||||
00 F997 SCREENSETUPPIXELADDR.XSHIFT_LOOP
|
||||
00 F99D SCREENSETUPPIXELADDR.NO_XSHIFT
|
||||
00 F9A3 SCREENADVANCEPOSNONMODE0
|
||||
00 F9BC SCREENADVANCEPOSNONMODE0.GRAPHICS_EOL
|
||||
00 F9C4 SCREENADVANCEPOSNONMODE0.GRAPHICS_NO_WRAP
|
||||
00 F9C7 SCREENWIDTHS
|
||||
00 F9CD SCREENPIXELWIDTHSHI
|
||||
00 F9D2 SCREENENCODINGTAB
|
||||
00 F9E2 SCREENPIXELMASKS
|
||||
00 F9EA EDITOROPEN
|
||||
00 E4C9 EDITORCLOSE
|
||||
00 F9F6 EDITORGETBYTE
|
||||
00 FA00 EDITORGETBYTE.HAVE_LINE
|
||||
00 FA10 EDITORGETBYTE.HAVE_CHAR
|
||||
00 FA13 EDITORGETBYTE.DONE
|
||||
00 FA16 EDITORGETLINE
|
||||
00 006D EDITORGETLINE._START_X
|
||||
00 006C EDITORGETLINE._START_Y
|
||||
00 FA29 EDITORGETLINE.READ_LOOP
|
||||
00 FA2E EDITORGETLINE.READ_ERROR
|
||||
00 FA2F EDITORGETLINE.READ_OK
|
||||
00 FA4E EDITORGETLINE.DO_EOL
|
||||
00 FA50 EDITORGETLINE.IS_EOL
|
||||
00 FA68 EDITORGETLINE.CHAR_LOOP
|
||||
00 FA72 EDITORGETLINE.BLANK
|
||||
00 FA8D EDITORGETLINE.SCAN_SCROLL
|
||||
00 FA90 EDITORGETLINE.SCAN_DONE
|
||||
00 FAA8 EDITORPUTBYTE
|
||||
00 FAB8 EDITORPUTBYTE.SCREENOK
|
||||
00 FAD2 EDITORPUTBYTE.SPECIAL_FOUND
|
||||
00 FAE2 EDITORPUTBYTE.NOT_SPECIAL
|
||||
00 FAE8 EDITORPUTBYTE.XIT2
|
||||
00 FAEB EDITORPUTBYTE.SPECIAL_CODE_TAB
|
||||
00 FAFA EDITORPUTBYTE.SPECIAL_CODE_TAB_END
|
||||
00 FAFC EDITORPUTBYTE.SPECIAL_CODE_TAB_END_2
|
||||
00 FAFC EDITORPUTBYTE.SPECIAL_DISPATCH_LO_TAB
|
||||
00 FB0B EDITORPUTBYTE.SPECIAL_ESCAPE
|
||||
00 FB11 EDITORPUTBYTE.SPECIAL_CLEAR
|
||||
00 FB14 EDITORPUTBYTE.SPECIAL_UP
|
||||
00 FB1B EDITORPUTBYTE.ISUP2
|
||||
00 FB1E EDITORPUTBYTE.SPECIAL_DOWN
|
||||
00 FB28 EDITORPUTBYTE.VMOVEEXIT
|
||||
00 FB38 EDITORPUTBYTE.MOVEEXIT
|
||||
00 FB39 EDITORPUTBYTE.SPECIAL_BACKSPACE
|
||||
00 FB41 EDITORPUTBYTE.SBKS_RECOMP
|
||||
00 FB49 EDITORPUTBYTE.SBKS_XIT
|
||||
00 FB4A EDITORPUTBYTE.SBKS_WRAP
|
||||
00 FB5A EDITORPUTBYTE.SPECIAL_BELL
|
||||
00 FB5D EDITORPUTBYTE.SPECIAL_SET_TAB
|
||||
00 FB65 EDITORPUTBYTE.SPECIAL_CLEAR_TAB
|
||||
00 FB6D EDITORPUTBYTE.SPECIAL_COMMON_EXIT_TAB
|
||||
00 FB71 EDITORPUTBYTE.SPECIAL_COMMON_TAB
|
||||
00 FB78 EDITORPUTBYTE.SPECIAL_TAB
|
||||
00 FB82 EDITORPUTBYTE.TAB_SCAN_LOOP
|
||||
00 FB8F EDITORPUTBYTE.TAB_FOUND
|
||||
00 FB91 EDITORPUTBYTE.TAB_ADJUST_ROW
|
||||
00 FBAA EDITORPUTBYTE.TAB_ADJUST_SCROLL
|
||||
00 FBAD EDITORPUTBYTE.TAB_ADJUST_LEFT
|
||||
00 FBAD EDITORPUTBYTE.HMOVE_TO_LMARGN
|
||||
00 FBAF EDITORPUTBYTE.HMOVE_TO_X
|
||||
00 FBB1 EDITORPUTBYTE.TAB_ADJUST_DONE
|
||||
00 FBB2 EDITORPUTBYTE.SPECIAL_LEFT
|
||||
00 FBBB EDITORPUTBYTE.SLFT_TO_RIGHT
|
||||
00 FBBF EDITORPUTBYTE.SPECIAL_RIGHT
|
||||
00 FBC8 EDITORPUTBYTE.SPECIAL_DELETE_LINE
|
||||
00 FBCE EDITORPUTBYTE.SPECIAL_INSERT_LINE
|
||||
00 FBD5 EDITORPUTBYTE.SPECIAL_DELETE_CHAR
|
||||
00 FBE1 EDITORPUTBYTE.SPECIAL_INSERT_CHAR
|
||||
00 FBF6 EDITORPUTBYTE.INSERT_LINE_LOOP
|
||||
00 FBFA EDITORPUTBYTE.INSERT_LINE_LOOP_ENTRY
|
||||
00 FC02 EDITORPUTBYTE.INSERT_SHIFT_LOOP
|
||||
00 FC21 EDITORPUTBYTE.INSERT_CROSSED_LLINE
|
||||
00 FC3B EDITORPUTBYTE.INSERT_NO_SCROLL
|
||||
00 FC4C EDITORPUTBYTE.INSERT_CANT_EXTEND
|
||||
00 FC52 EDITORPUTBYTE.INSERT_DONE
|
||||
00 FC53 EDITORPUTBYTE.DISPATCH
|
||||
00 FC5B EDITORPUTBYTE.DELETE_LINE_LOOP
|
||||
00 FC65 EDITORPUTBYTE.DELETE_SHIFT_LOOP
|
||||
00 FC6C EDITORPUTBYTE.DELETE_SHIFT_LOOP_ENTRY
|
||||
00 FC83 EDITORPUTBYTE.DELETE_STOP_SHIFTING
|
||||
00 FC89 EDITORPUTBYTE.DELETE_BLANK_TEST_LOOP
|
||||
00 FCA6 EDITORPUTBYTE.DELETE_NOT_BLANK
|
||||
00 FCA7 EDITORISSPECIAL
|
||||
00 FCA7 EDITORISSPECIAL.SPECIAL_BINSEARCH
|
||||
00 FCAF EDITORISSPECIAL.SPECIAL_FOUND
|
||||
00 FCB0 EDITORRECOMPUTECURSORADDR
|
||||
00 FCBE EDITORDELETELINE
|
||||
00 FCBC EDITORDELETELINE0
|
||||
00 FCBE EDITORDELETELINE0.USE_LINE
|
||||
00 FCC4 EDITORDELETELINE0.SCROLL_LOOP
|
||||
00 FCCD EDITORDELETELINE0.LINE_LOOP
|
||||
00 FCD9 EDITORDELETELINE0.LINE_LOOP_START
|
||||
00 FCFF EDITORDELETELINE0.DO_MASK
|
||||
00 FD1A EDITORDELETELINE0.UPDATE_TABLE
|
||||
00 FD1D EDITORDELETELINE0.ADJUST_LINES
|
||||
00 FD26 EDITORDELETELINE0.ADJUST_LINE
|
||||
00 FD31 EDITORDELETELINE0.ADJUST_LINE_BELOW
|
||||
00 FD33 EDITORDELETELINE0.ADJUST_LINE_ABOVE
|
||||
00 E4C9 EDITORGETSTATUS
|
||||
00 E4CB EDITORSPECIAL
|
||||
00 E4CB EDITORINIT
|
||||
00 FD34 EDITORGETCURLOGICALLINEINFO
|
||||
00 FD36 EDITORGETLOGICALLINEINFO
|
||||
00 FD34 _EDITORGETLOGICALLINEINFO
|
||||
00 FD36 _EDITORGETLOGICALLINEINFO.USE_A
|
||||
00 FD43 EDITORTESTLOGICALLINEBIT
|
||||
00 FD4C EDITORPHYSTOLOGICALROW
|
||||
00 FD4A EDITORGETCURLOGICALROW
|
||||
00 FD4C EDITORGETCURLOGICALROW.USE_LINE
|
||||
00 FD4E EDITORGETCURLOGICALROW.TEST_LOOP
|
||||
00 FD59 EDITORGETCURLOGICALROW.FOUND
|
||||
00 FD5C EDITORBELL
|
||||
00 FD61 EDITORSWAPTOSCREEN_Y1
|
||||
00 FD63 EDITORSWAPTOSCREEN
|
||||
00 FD6C EDITORGETLOGICALCOLUMN
|
||||
00 FD7B EDITORSETUPTABINDEX
|
||||
00 FD8A EDITORNEXTLINEADDR
|
||||
00 FD9C EDITORLINELENGTHTAB
|
||||
00 FDA0 SCREENENCODINGOFFSETTABLE
|
||||
00 FDA3 SCREENENCODINGTABLE
|
||||
00 FDB9 SCREENRESETLOGICALLINEMAP
|
||||
00 FDCC SCREENSETLASTPOSITION
|
||||
00 FDCE SCREENSETLASTPOSITION.LOOP
|
||||
00 FDD6 SCREENADVANCEPOSMODE0
|
||||
00 FDE4 SCREENADVANCEPOSMODE0.POST_WRAP
|
||||
00 FDE5 SCREENSHOWCURSORANDXITOK
|
||||
00 FDF4 SCREENSHOWCURSORANDXITOK.CURSOR_INHIBITED
|
||||
00 E4C9 SCREENCLOSE
|
||||
00 FDF6 SCREENPLAYFIELDSIZESLO
|
||||
00 FE06 SCREENPLAYFIELDSIZESHI
|
||||
00 FE16 SCREENMODETABLE
|
||||
00 FE26 SCREENHEIGHTSHIFTS
|
||||
00 FE36 SCREENHEIGHTS
|
||||
00 FE3B SCREENPIXELWIDTHIDS
|
||||
00 FE4B KEYBOARDINIT
|
||||
00 E4C9 KEYBOARDOPEN
|
||||
00 E4C9 KEYBOARDCLOSE
|
||||
00 FE60 _KEYBOARDGETBYTE
|
||||
00 FE60 _KEYBOARDGETBYTE.TOGGLE_SHIFT
|
||||
00 FE60 _KEYBOARDGETBYTE.SHIFT_CTRL_ON
|
||||
00 FE60 _KEYBOARDGETBYTE.CAPS_OFF
|
||||
00 FE63 _KEYBOARDGETBYTE.WRITE_SHFLOK
|
||||
00 FE66 KEYBOARDGETBYTE
|
||||
00 FE66 _KEYBOARDGETBYTE.WAITFORCHAR
|
||||
00 FE68 _KEYBOARDGETBYTE.WAITFORCHAR2
|
||||
00 FE97 _KEYBOARDGETBYTE.VALID_KEY
|
||||
00 FEA8 _KEYBOARDGETBYTE.DOSHIFTLOCK
|
||||
00 FEAA _KEYBOARDGETBYTE.NOTALPHA
|
||||
00 FEB4 _KEYBOARDGETBYTE.SKIP_INVERSE
|
||||
00 FEBA _KEYBOARDGETBYTE.ISINVERSE
|
||||
00 FEC4 _KEYBOARDGETBYTE.ISBREAK
|
||||
00 FEC9 _KEYBOARDGETBYTE.ISCTRL3
|
||||
00 E4CB KEYBOARDPUTBYTE
|
||||
00 E4C9 KEYBOARDGETSTATUS
|
||||
00 E4CB KEYBOARDSPECIAL
|
||||
00 FECC KEYBOARDIRQ
|
||||
00 FEE1 KEYBOARDIRQ.DEBOUNCED
|
||||
00 FEEF KEYBOARDIRQ.XIT2
|
||||
00 FEF4 KEYBOARDIRQ.XIT
|
||||
00 FEF6 KEYBOARDIRQ.IS_SUSPEND
|
||||
00 FF00 KEYBOARDBREAKIRQ
|
||||
00 FF0C KEYCODETOATASCIITABLE
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,123 @@
|
|||
mads 2.1.0
|
||||
Label table:
|
||||
00 C010 TRIG0
|
||||
00 C011 TRIG1
|
||||
00 C012 TRIG2
|
||||
00 C012 COLPM0
|
||||
00 C013 TRIG3
|
||||
00 C013 COLPM1
|
||||
00 C014 COLPM2
|
||||
00 C015 COLPM3
|
||||
00 C016 COLPF0
|
||||
00 C017 COLPF1
|
||||
00 C018 COLPF2
|
||||
00 C019 COLPF3
|
||||
00 C01A COLBK
|
||||
00 C01B PRIOR
|
||||
00 C01F CONSOL
|
||||
00 E800 POT0
|
||||
00 E800 AUDF1
|
||||
00 E801 POT1
|
||||
00 E801 AUDC1
|
||||
00 E802 POT2
|
||||
00 E802 AUDF2
|
||||
00 E803 POT3
|
||||
00 E803 AUDC2
|
||||
00 E804 POT4
|
||||
00 E804 AUDF3
|
||||
00 E805 POT5
|
||||
00 E805 AUDC3
|
||||
00 E806 POT6
|
||||
00 E806 AUDF4
|
||||
00 E807 POT7
|
||||
00 E807 AUDC4
|
||||
00 E808 AUDCTL
|
||||
00 E809 KBCODE
|
||||
00 E80A SKRES
|
||||
00 E80B POTGO
|
||||
00 E80D SERIN
|
||||
00 E80D SEROUT
|
||||
00 E80E IRQEN
|
||||
00 E80E IRQST
|
||||
00 E80F SKCTL
|
||||
00 D400 DMACTL
|
||||
00 D401 CHACTL
|
||||
00 D402 DLISTL
|
||||
00 D403 DLISTH
|
||||
00 D404 HSCROL
|
||||
00 D405 VSCROL
|
||||
00 D409 CHBASE
|
||||
00 D40A WSYNC
|
||||
00 D40E NMIEN
|
||||
00 D40F NMIST
|
||||
00 D40F NMIRES
|
||||
00 0000 POKMSK
|
||||
00 0001 RTCLOK
|
||||
00 0003 CRITIC
|
||||
00 0004 ATRACT
|
||||
00 0005 SDLSTL
|
||||
00 0006 SDLSTH
|
||||
00 0007 SDMCTL
|
||||
00 0008 PCOLR0
|
||||
00 0009 PCOLR1
|
||||
00 000A PCOLR2
|
||||
00 000B PCOLR3
|
||||
00 000C COLOR0
|
||||
00 000D COLOR1
|
||||
00 000E COLOR2
|
||||
00 000F COLOR3
|
||||
00 0010 COLOR4
|
||||
00 0011 PADDL0
|
||||
00 0012 PADDL1
|
||||
00 0013 PADDL2
|
||||
00 0014 PADDL3
|
||||
00 0015 PADDL4
|
||||
00 0016 PADDL5
|
||||
00 0017 PADDL6
|
||||
00 0018 PADDL7
|
||||
00 0200 VIMIRQ
|
||||
00 0202 VVBLKI
|
||||
00 0204 VVBLKD
|
||||
00 0206 VDSLST
|
||||
00 0208 VKYBDI
|
||||
00 020A VKYBDF
|
||||
00 020C VTRIGR
|
||||
00 020E VBRKOP
|
||||
00 0210 VSERIN
|
||||
00 0212 VSEROR
|
||||
00 0214 VSEROC
|
||||
00 0216 VTIMR1
|
||||
00 0218 VTIMR2
|
||||
00 021A VTIMR4
|
||||
00 021E JVECK
|
||||
00 FC00 IRQ
|
||||
00 FC03 SYSIRQ
|
||||
00 FC18 SYSIRQ.NOT_SERIN
|
||||
00 FC29 SYSIRQ.NOT_TRIGR
|
||||
00 FC3A SYSIRQ.NOT_KYBD
|
||||
00 FC4D SYSIRQ.NOT_SEROR
|
||||
00 FC64 SYSIRQ.NOT_SEROC
|
||||
00 FC78 SYSIRQ.NOT_TIMR1
|
||||
00 FC8B SYSIRQ.NOT_TIMR2
|
||||
00 FC9E SYSIRQ.NOT_TIMR4
|
||||
00 FCAB SYSIRQ.WTF
|
||||
00 FCB2 XITVBL
|
||||
00 FCB8 SYSVBL
|
||||
00 FCC9 SYSVBL.RTNOCARRY
|
||||
00 FCE6 SYSVBL.COLORLOOP
|
||||
00 FCF1 SYSVBL.POTLOOP
|
||||
00 FD02 SYSKBD
|
||||
00 FD13 KEYTABLE
|
||||
00 FD23 NMI
|
||||
00 FD31 RESET
|
||||
00 FD40 RESET.NOTDIAG
|
||||
00 FD44 RESET.ZEROLOOP
|
||||
00 FD59 RESET.VECLOOP
|
||||
00 FD64 RESET.PFCOPYLOOP
|
||||
00 FD6F RESET.NAMECOPYLOOP
|
||||
00 FD93 RESET.DLCOPY
|
||||
00 FDC2 RESET.DLIST
|
||||
00 FDCD RESET.PLAYFIELD
|
||||
00 FE95 IRQTABLE
|
||||
00 FEA1 SYSDLI
|
||||
00 FEAA SYSDLI.NOROLL
|
|
@ -0,0 +1,479 @@
|
|||
mads 2.1.0
|
||||
Source: source/SuperKernel/main.xasm
|
||||
1 ; Altirra - Atari 800/800XL/5200 emulator
|
||||
2 ; 5200 OS ROM replacement
|
||||
3 ; Copyright (C) 2008-2010 Avery Lee
|
||||
4 ;
|
||||
5 ; Copying and distribution of this file, with or without modification,
|
||||
6 ; are permitted in any medium without royalty provided the copyright
|
||||
7 ; notice and this notice are preserved. This file is offered as-is,
|
||||
8 ; without any warranty.
|
||||
9
|
||||
10 opt h-o+f+
|
||||
11
|
||||
12 icl 'includes.xasm'
|
||||
Source: source/SuperKernel/includes.xasm
|
||||
1 ; Altirra - Atari 800/800XL/5200 emulator
|
||||
2 ; 5200 OS ROM replacement
|
||||
3 ; Copyright (C) 2008-2016 Avery Lee
|
||||
4 ;
|
||||
5 ; Copying and distribution of this file, with or without modification,
|
||||
6 ; are permitted in any medium without royalty provided the copyright
|
||||
7 ; notice and this notice are preserved. This file is offered as-is,
|
||||
8 ; without any warranty.
|
||||
9
|
||||
10 = C010 trig0 equ $c010
|
||||
11 = C011 trig1 equ $c011
|
||||
12 = C012 trig2 equ $c012
|
||||
13 = C012 colpm0 equ $c012
|
||||
14 = C013 trig3 equ $c013
|
||||
15 = C013 colpm1 equ $c013
|
||||
16 = C014 colpm2 equ $c014
|
||||
17 = C015 colpm3 equ $c015
|
||||
18 = C016 colpf0 equ $c016
|
||||
19 = C017 colpf1 equ $c017
|
||||
20 = C018 colpf2 equ $c018
|
||||
21 = C019 colpf3 equ $c019
|
||||
22 = C01A colbk equ $c01a
|
||||
23 = C01B prior equ $c01b
|
||||
24 = C01F consol equ $c01f
|
||||
25 = E800 pot0 equ $e800
|
||||
26 = E800 audf1 equ $e800
|
||||
27 = E801 pot1 equ $e801
|
||||
28 = E801 audc1 equ $e801
|
||||
29 = E802 pot2 equ $e802
|
||||
30 = E802 audf2 equ $e802
|
||||
31 = E803 pot3 equ $e803
|
||||
32 = E803 audc2 equ $e803
|
||||
33 = E804 pot4 equ $e804
|
||||
34 = E804 audf3 equ $e804
|
||||
35 = E805 pot5 equ $e805
|
||||
36 = E805 audc3 equ $e805
|
||||
37 = E806 pot6 equ $e806
|
||||
38 = E806 audf4 equ $e806
|
||||
39 = E807 pot7 equ $e807
|
||||
40 = E807 audc4 equ $e807
|
||||
41 = E808 audctl equ $e808
|
||||
42 = E809 kbcode equ $e809
|
||||
43 = E80A skres equ $e80a
|
||||
44 = E80B potgo equ $e80b
|
||||
45 = E80D serin equ $e80d
|
||||
46 = E80D serout equ $e80d
|
||||
47 = E80E irqen equ $e80e
|
||||
48 = E80E irqst equ $e80e
|
||||
49 = E80F skctl equ $e80f
|
||||
50 = D400 dmactl equ $d400
|
||||
51 = D401 chactl equ $d401
|
||||
52 = D402 dlistl equ $d402
|
||||
53 = D403 dlisth equ $d403
|
||||
54 = D404 hscrol equ $d404
|
||||
55 = D405 vscrol equ $d405
|
||||
56 = D409 chbase equ $d409
|
||||
57 = D40A wsync equ $d40a
|
||||
58 = D40E nmien equ $d40e
|
||||
59 = D40F nmist equ $d40f
|
||||
60 = D40F nmires equ $d40f
|
||||
61
|
||||
62 = 0000 pokmsk equ $00
|
||||
63 = 0001 rtclok equ $01
|
||||
64 ; equ $02
|
||||
65 = 0003 critic equ $03
|
||||
66 = 0004 atract equ $04
|
||||
67 = 0005 sdlstl equ $05
|
||||
68 = 0006 sdlsth equ $06
|
||||
69 = 0007 sdmctl equ $07
|
||||
70 = 0008 pcolr0 equ $08
|
||||
71 = 0009 pcolr1 equ $09
|
||||
72 = 000A pcolr2 equ $0a
|
||||
73 = 000B pcolr3 equ $0b
|
||||
74 = 000C color0 equ $0c
|
||||
75 = 000D color1 equ $0d
|
||||
76 = 000E color2 equ $0e
|
||||
77 = 000F color3 equ $0f
|
||||
78 = 0010 color4 equ $10
|
||||
79 = 0011 paddl0 equ $11
|
||||
80 = 0012 paddl1 equ $12
|
||||
81 = 0013 paddl2 equ $13
|
||||
82 = 0014 paddl3 equ $14
|
||||
83 = 0015 paddl4 equ $15
|
||||
84 = 0016 paddl5 equ $16
|
||||
85 = 0017 paddl6 equ $17
|
||||
86 = 0018 paddl7 equ $18
|
||||
87
|
||||
88 = 0200 vimirq equ $0200 ;IRQ immediate vector
|
||||
89 = 0202 vvblki equ $0202 ;VBI immediate vector
|
||||
90 = 0204 vvblkd equ $0204 ;VBI deferred vector
|
||||
91 = 0206 vdslst equ $0206 ;display list vector
|
||||
92 = 0208 vkybdi equ $0208 ;keyboard immediate vector
|
||||
93 = 020A vkybdf equ $020a ;keyboard deferred vector
|
||||
94 = 020C vtrigr equ $020c ;soft-trigger vector (BREAK key)
|
||||
95 = 020E vbrkop equ $020e ;BRK opcode vector
|
||||
96 = 0210 vserin equ $0210 ;serial input ready vector
|
||||
97 = 0212 vseror equ $0212 ;serial output ready vector
|
||||
98 = 0214 vseroc equ $0214 ;serial output complete vector
|
||||
99 = 0216 vtimr1 equ $0216 ;POKEY timer #1 vector
|
||||
100 = 0218 vtimr2 equ $0218 ;POKEY timer #2 vector
|
||||
101 = 021A vtimr4 equ $021a ;POKEY timer #4 vector
|
||||
102
|
||||
103 = 021E jveck equ $021e
|
||||
13
|
||||
14 org $f800
|
||||
15 F800 00 00 00 00 00 00 + ins 'atarifont.bin',$0,$400
|
||||
16
|
||||
17 ;=========================================================================
|
||||
18 FC00 .proc irq
|
||||
19 FC00 6C 00 02 jmp (vimirq)
|
||||
20 .endp
|
||||
21
|
||||
22 ;=========================================================================
|
||||
23 ;Must be at $FC03 for Montezuma's Revenge to work.
|
||||
24 FC03 org $fc03
|
||||
25 FC03 .proc sysirq
|
||||
26 FC03 48 pha
|
||||
27
|
||||
28 ;We test interrupts in this order:
|
||||
29 ; 20 -> VSERIN
|
||||
30 ; 80 -> VTRIGR
|
||||
31 ; 40 -> VKYBDI
|
||||
32 ; 10 -> VSEROR
|
||||
33 ; 08 -> VSEROC
|
||||
34 ; 01 -> VTIMR1
|
||||
35 ; 02 -> VTIMR2
|
||||
36 ; 04 -> VTIMR4
|
||||
37 ; VBRKOP
|
||||
38 ;
|
||||
39 ;Note that there is a complication with VSEROC, since it is not
|
||||
40 ;masked by POKEY. We must only dispatch it if it is enabled in
|
||||
41 ;POKMSK.
|
||||
42 FC04 A9 20 lda #$20
|
||||
43 FC06 2C 0E E8 bit irqst
|
||||
44 FC09 D0 0D bne not_serin
|
||||
45 FC0B 45 00 eor pokmsk
|
||||
46 FC0D 8D 0E E8 sta irqen
|
||||
47 FC10 A5 00 lda pokmsk
|
||||
48 FC12 8D 0E E8 sta irqen
|
||||
49 FC15 6C 10 02 jmp (vserin)
|
||||
50 FC18 not_serin:
|
||||
51 FC18 30 0F bmi not_trigr
|
||||
52 FC1A A9 80 lda #$80
|
||||
53 FC1C 45 00 eor pokmsk
|
||||
54 FC1E 8D 0E E8 sta irqen
|
||||
55 FC21 A5 00 lda pokmsk
|
||||
56 FC23 8D 0E E8 sta irqen
|
||||
57 FC26 6C 0C 02 jmp (vtrigr)
|
||||
58 FC29 not_trigr:
|
||||
59 FC29 70 0F bvs not_kybd
|
||||
60 FC2B A9 40 lda #$40
|
||||
61 FC2D 45 00 eor pokmsk
|
||||
62 FC2F 8D 0E E8 sta irqen
|
||||
63 FC32 A5 00 lda pokmsk
|
||||
64 FC34 8D 0E E8 sta irqen
|
||||
65 FC37 6C 08 02 jmp (vkybdi)
|
||||
66 FC3A not_kybd:
|
||||
67 FC3A 6A ror
|
||||
68 FC3B 2C 0E E8 bit irqen
|
||||
69 FC3E F0 0D beq not_seror
|
||||
70 FC40 45 00 eor pokmsk
|
||||
71 FC42 8D 0E E8 sta irqen
|
||||
72 FC45 A5 00 lda pokmsk
|
||||
73 FC47 8D 0E E8 sta irqen
|
||||
74 FC4A 6C 12 02 jmp (vseror)
|
||||
75 FC4D not_seror:
|
||||
76 FC4D 6A ror
|
||||
77 FC4E 24 00 bit pokmsk
|
||||
78 FC50 F0 12 beq not_seroc
|
||||
79 FC52 2C 0E E8 bit irqen
|
||||
80 FC55 D0 0D bne not_seroc
|
||||
81 FC57 45 00 eor pokmsk
|
||||
82 FC59 8D 0E E8 sta irqen
|
||||
83 FC5C A5 00 lda pokmsk
|
||||
84 FC5E 8D 0E E8 sta irqen
|
||||
85 FC61 6C 14 02 jmp (vseroc)
|
||||
86 FC64 not_seroc:
|
||||
87 FC64 A9 01 lda #$01
|
||||
88 FC66 2C 0E E8 bit irqst
|
||||
89 FC69 D0 0D bne not_timr1
|
||||
90 FC6B 45 00 eor pokmsk
|
||||
91 FC6D 8D 0E E8 sta irqen
|
||||
92 FC70 A5 00 lda pokmsk
|
||||
93 FC72 8D 0E E8 sta irqen
|
||||
94 FC75 6C 16 02 jmp (vtimr1)
|
||||
95 FC78 not_timr1:
|
||||
96 FC78 2A rol
|
||||
97 FC79 2C 0E E8 bit irqst
|
||||
98 FC7C D0 0D bne not_timr2
|
||||
99 FC7E 45 00 eor pokmsk
|
||||
100 FC80 8D 0E E8 sta irqen
|
||||
101 FC83 A5 00 lda pokmsk
|
||||
102 FC85 8D 0E E8 sta irqen
|
||||
103 FC88 6C 18 02 jmp (vtimr2)
|
||||
104 FC8B not_timr2:
|
||||
105 FC8B 2A rol
|
||||
106 FC8C 2C 0E E8 bit irqst
|
||||
107 FC8F D0 0D bne not_timr4
|
||||
108 FC91 45 00 eor pokmsk
|
||||
109 FC93 8D 0E E8 sta irqen
|
||||
110 FC96 A5 00 lda pokmsk
|
||||
111 FC98 8D 0E E8 sta irqen
|
||||
112 FC9B 6C 1A 02 jmp (vtimr4)
|
||||
113 FC9E not_timr4:
|
||||
114 FC9E 8A txa
|
||||
115 FC9F 48 pha
|
||||
116 FCA0 BA tsx
|
||||
117 FCA1 BD 01 01 lda $0101,x
|
||||
118 FCA4 29 10 and #$10
|
||||
119 FCA6 D0 03 bne wtf
|
||||
120 FCA8 6C 0E 02 jmp (vbrkop)
|
||||
121 FCAB wtf:
|
||||
122 FCAB 68 pla
|
||||
123 FCAC AA tax
|
||||
124 FCAD 68 pla
|
||||
125 FCAE 40 rti
|
||||
126 .endp
|
||||
127
|
||||
128 ;=========================================================================
|
||||
129 ;Must be at $FCB2 for Congo Bongo to work (grrr... damn SEGA)
|
||||
130 FCAF org $fcb2
|
||||
131 FCB2 .proc xitvbl
|
||||
132 FCB2 68 pla
|
||||
133 FCB3 A8 tay
|
||||
134 FCB4 68 pla
|
||||
135 FCB5 AA tax
|
||||
136 FCB6 68 pla
|
||||
137 FCB7 40 rti
|
||||
138 .endp
|
||||
139
|
||||
140 ;=========================================================================
|
||||
141 ;Must be at $FCB8 for Montezuma's Revenge to work.
|
||||
142 FCB8 org $fcb8
|
||||
143 FCB8 .proc sysvbl
|
||||
144 FCB8 48 pha
|
||||
145 FCB9 8A txa
|
||||
146 FCBA 48 pha
|
||||
147 FCBB 98 tya
|
||||
148 FCBC 48 pha
|
||||
149
|
||||
150 FCBD E6 02 inc rtclok+1
|
||||
151 FCBF D0 08 bne rtnocarry
|
||||
152 FCC1 E6 01 inc rtclok
|
||||
153 FCC3 A5 04 lda atract
|
||||
154 FCC5 30 02 bmi rtnocarry
|
||||
155 FCC7 E6 04 inc atract
|
||||
156 FCC9 rtnocarry:
|
||||
157
|
||||
158 FCC9 A5 03 lda critic
|
||||
159 FCCB D0 E5 bne xitvbl
|
||||
160
|
||||
161 FCCD A5 05 8D 02 D4 mva sdlstl dlistl
|
||||
162 FCD2 A5 06 8D 03 D4 mva sdlsth dlisth
|
||||
163 FCD7 A5 07 8D 00 D4 mva sdmctl dmactl
|
||||
164
|
||||
165 ;copy and attract colors
|
||||
166 FCDC A0 00 ldy #0
|
||||
167 FCDE 24 04 bit atract
|
||||
168 FCE0 10 02 A4 01 spl:ldy rtclok
|
||||
169
|
||||
170 FCE4 A2 08 ldx #8
|
||||
171 FCE6 colorloop:
|
||||
172 FCE6 98 tya
|
||||
173 FCE7 55 08 eor pcolr0,x
|
||||
174 FCE9 9D 12 C0 sta colpm0,x
|
||||
175 FCEC CA dex
|
||||
176 FCED 10 F7 bpl colorloop
|
||||
177
|
||||
178 ;update pots
|
||||
179 FCEF A2 07 ldx #7
|
||||
180 FCF1 potloop:
|
||||
181 FCF1 BD 00 E8 lda pot0,x
|
||||
182 FCF4 95 11 sta paddl0,x
|
||||
183 FCF6 CA dex
|
||||
184 FCF7 10 F8 bpl potloop
|
||||
185 FCF9 8D 0B E8 sta potgo
|
||||
186
|
||||
187 ;run deferred
|
||||
188 FCFC 6C 04 02 jmp (vvblkd)
|
||||
189 .endp
|
||||
190
|
||||
191 ;=========================================================================
|
||||
192 ; System keyboard handler
|
||||
193 ;
|
||||
194 ; MUST be at $FD02 for Blueprint to work.
|
||||
195 ;
|
||||
196 FCFF org $fd02
|
||||
197 FD02 .proc syskbd
|
||||
198 FD02 8A txa
|
||||
199 FD03 48 pha
|
||||
200 FD04 98 tya
|
||||
201 FD05 48 pha
|
||||
202 FD06 AD 09 E8 lda kbcode
|
||||
203 FD09 4A lsr
|
||||
204 FD0A 29 0F and #$0f
|
||||
205 FD0C AA tax
|
||||
206 FD0D BD 13 FD lda keytable,x
|
||||
207 FD10 6C 0A 02 jmp (vkybdf)
|
||||
208 .endp
|
||||
209
|
||||
210 ;=========================================================================
|
||||
211 ;Keyboard translation table
|
||||
212 ;
|
||||
213 ;MUST be at $FD13 for Congo Bongo to work.
|
||||
214 ;
|
||||
215 FD13 org $fd13
|
||||
216 FD13 keytable:
|
||||
217 FD13 FF 0B 00 0A 0E 09 + dta $ff,$0b,$00,$0a,$0e,$09,$08,$07,$0d,$06,$05,$04,$0c,$03,$02,$01
|
||||
218
|
||||
219 ;=========================================================================
|
||||
220 ; NMI handler
|
||||
221 ;
|
||||
222 FD23 .proc nmi
|
||||
223 FD23 2C 0F D4 bit nmist
|
||||
224
|
||||
225 ;This is pretty useless, but the stock 5200 OS does it, and it
|
||||
226 ;affects DLI timing -- in particular, it can cause DLIs ported
|
||||
227 ;from the 400/800 OS to fail.
|
||||
228 FD26 8D 0F D4 sta nmires
|
||||
229
|
||||
230 FD29 10 03 6C 06 02 spl:jmp (vdslst)
|
||||
231 FD2E 6C 02 02 jmp (vvblki)
|
||||
232 .endp
|
||||
233
|
||||
234 ;=========================================================================
|
||||
235 ; RESET handler
|
||||
236 ;
|
||||
237 FD31 .proc reset
|
||||
238 ;initialize CPU
|
||||
239 FD31 78 sei
|
||||
240 FD32 D8 cld
|
||||
241 FD33 A2 FF ldx #$ff
|
||||
242 FD35 9A txs
|
||||
243
|
||||
244 ;check for diagnostic cartridge
|
||||
245 FD36 AD FD BF lda $bffd
|
||||
246 FD39 C9 FF cmp #$ff
|
||||
247 FD3B D0 03 bne notdiag
|
||||
248 FD3D 6C FE BF jmp ($bffe)
|
||||
249 FD40 notdiag:
|
||||
250
|
||||
251 ;zero hardware registers and page zero
|
||||
252 FD40 A2 00 ldx #0
|
||||
253 FD42 A9 00 lda #0
|
||||
254 FD44 zeroloop:
|
||||
255 FD44 95 00 sta $00,x
|
||||
256 FD46 9D 00 C0 sta $c000,x
|
||||
257 FD49 9D 00 D4 sta $d400,x
|
||||
258 FD4C 9D 00 E8 sta $e800,x
|
||||
259 FD4F E8 inx
|
||||
260 FD50 D0 F2 bne zeroloop
|
||||
261
|
||||
262 ;init hardware display
|
||||
263 FD52 A9 F8 8D 09 D4 mva #$f8 chbase
|
||||
264
|
||||
265 ;initialize vectors
|
||||
266 FD57 A2 0B ldx #$0b
|
||||
267 FD59 vecloop:
|
||||
268 FD59 BD 95 FE lda irqtable,x
|
||||
269 FD5C 9D 00 02 sta $0200,x
|
||||
270 FD5F CA dex
|
||||
271 FD60 10 F7 bpl vecloop
|
||||
272
|
||||
273 ;set up default display
|
||||
274 FD62 A2 4F ldx #79
|
||||
275 FD64 pfcopyloop:
|
||||
276 FD64 BD CD FD lda playfield,x
|
||||
277 FD67 9D 00 10 sta $1000,x
|
||||
278 FD6A CA dex
|
||||
279 FD6B 10 F7 bpl pfcopyloop
|
||||
280
|
||||
281 FD6D A2 13 ldx #19
|
||||
282 FD6F namecopyloop:
|
||||
283 FD6F BD E8 BF lda $bfe8,x
|
||||
284 FD72 9D 50 10 sta $1050,x
|
||||
285 FD75 CA dex
|
||||
286 FD76 10 F7 bpl namecopyloop
|
||||
287
|
||||
288 ;PF0 is the flashing color, while PF1 is white. PF2 and PF3 are black.
|
||||
289 ;In fact, PF3 must be black in order for the Defender title to appear
|
||||
290 ;properly.
|
||||
291 FD78 A9 10 85 0C mva #$10 color0
|
||||
292 FD7C A9 0F 85 0D mva #$0F color1
|
||||
293 FD80 A9 00 85 0E mva #$00 color2
|
||||
294 FD84 A9 00 85 0F mva #$00 color3
|
||||
295 FD88 A9 00 85 10 mva #$00 color4
|
||||
296 FD8C A9 04 8D 1B C0 mva #$04 prior
|
||||
297
|
||||
298 ;move display list; must be at $2000 for Miniature Golf to work
|
||||
299 FD91 A2 0A ldx #playfield-dlist-1
|
||||
300 FD93 dlcopy:
|
||||
301 FD93 BD C2 FD lda dlist,x
|
||||
302 FD96 9D 00 20 sta $2000,x
|
||||
303 FD99 CA dex
|
||||
304 FD9A 10 F7 bpl dlcopy
|
||||
305
|
||||
306 FD9C A9 22 85 07 mva #$22 sdmctl
|
||||
307 FDA0 A9 C0 8D 0E D4 mva #$c0 nmien
|
||||
308 FDA5 A9 00 85 05 A9 20 + mwa #$2000 sdlstl
|
||||
309
|
||||
310 ;enable key input
|
||||
311 FDAD A9 02 8D 0F E8 mva #$02 skctl
|
||||
312 FDB2 A9 C0 lda #$c0
|
||||
313 FDB4 85 00 sta pokmsk
|
||||
314 FDB6 8D 0E E8 sta irqen
|
||||
315
|
||||
316 ;wait two seconds (four is too long)
|
||||
317 FDB9 A9 78 lda #120
|
||||
318 FDBB C5 02 D0 FC cmp:rne rtclok+1
|
||||
319
|
||||
320 ;invoke cartridge
|
||||
321 FDBF 6C FE BF jmp ($bffe)
|
||||
322
|
||||
323 FDC2 dlist:
|
||||
324 FDC2 70 dta $70
|
||||
325 FDC3 70 dta $70
|
||||
326 FDC4 70 dta $70
|
||||
327 FDC5 42 00 10 dta $42,a($1000)
|
||||
328 FDC8 82 dta $82
|
||||
329 FDC9 07 dta $07
|
||||
330 FDCA 41 C2 FD dta $41,a(dlist)
|
||||
331
|
||||
332 FDCD playfield:
|
||||
333 ; 0123456789012345678901234567890123456789
|
||||
334 FDCD 21 6C 74 69 72 72 + dta d"Altirra 5200 ROM Kernel "
|
||||
335 FDF5 2E 6F 77 00 70 6C + dta d"Now playing: "
|
||||
336 .endp
|
||||
337
|
||||
338 ;=========================================================================
|
||||
339 ; Default IRQ table
|
||||
340 ;
|
||||
341 ; MUST be at $FE95 for Pitfall! to work.
|
||||
342 ;
|
||||
343 FE1D org $fe95
|
||||
344 FE95 irqtable:
|
||||
345 FE95 03 FC dta a(sysirq) ;vimirq = $fc03
|
||||
346 FE97 B8 FC dta a(sysvbl) ;vvblki = $fcb8
|
||||
347 FE99 B2 FC dta a(xitvbl) ;vvblkd
|
||||
348 FE9B A1 FE dta a(sysdli) ;vdslst = $fea1
|
||||
349 FE9D 02 FD dta a(syskbd) ;vkybdi
|
||||
350 FE9F B2 FC dta a(xitvbl) ;vkybdf
|
||||
351
|
||||
352 ;=========================================================================
|
||||
353 ;Must be at $FEA1 for A.E.
|
||||
354 FEA1 org $fea1
|
||||
355 FEA1 .proc sysdli
|
||||
356 FEA1 48 pha
|
||||
357
|
||||
358 ;cycle color PF0, but avoid going through grayscales
|
||||
359 FEA2 E6 0C inc color0
|
||||
360 FEA4 D0 04 bne noroll
|
||||
361 FEA6 A9 10 lda #$10
|
||||
362 FEA8 85 0C sta color0
|
||||
363 FEAA noroll:
|
||||
364 FEAA 68 pla
|
||||
365 FEAB 40 rti
|
||||
366 .endp
|
||||
367
|
||||
368 ;=========================================================================
|
||||
369
|
||||
370 FEAC org $fffa
|
||||
371 FFFA 23 FD dta a(nmi)
|
||||
372 FFFC 31 FD dta a(reset)
|
||||
373 FFFE 00 FC dta a(irq)
|
Binary file not shown.
|
@ -255,6 +255,11 @@ export var POKEYDeviceChannel = function() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.getRegister = function(addr) {
|
||||
addr &= 0xf;
|
||||
return regs[addr];
|
||||
}
|
||||
|
||||
this.setTIARegister = function(addr, value) {
|
||||
switch (addr) {
|
||||
|
|
|
@ -1651,7 +1651,7 @@ export var _MOS6502 = function() {
|
|||
pushToStack((PC >>> 8) & 0xff);
|
||||
},
|
||||
function() { pushToStack(PC & 0xff); },
|
||||
function() { pushToStack(getStatusBits()); },
|
||||
function() { pushToStack(getStatusBits() & ~0x10); }, // no BRK flag
|
||||
function() { AD = bus.read(IRQ_VECTOR); },
|
||||
function() { AD |= bus.read(IRQ_VECTOR + 1) << 8; },
|
||||
function() { PC = AD; fetchNextOpcode(); }
|
||||
|
@ -1667,7 +1667,7 @@ export var _MOS6502 = function() {
|
|||
pushToStack((PC >>> 8) & 0xff);
|
||||
},
|
||||
function() { pushToStack(PC & 0xff); },
|
||||
function() { pushToStack(getStatusBits()); },
|
||||
function() { pushToStack(getStatusBits() & ~0x10); }, // no BRK flag
|
||||
function() { AD = bus.read(NMI_VECTOR); },
|
||||
function() { AD |= bus.read(NMI_VECTOR + 1) << 8; },
|
||||
function() { PC = AD; fetchNextOpcode(); }
|
||||
|
|
|
@ -308,6 +308,7 @@ export abstract class BasicMachine extends BasicHeadlessMachine implements Sampl
|
|||
abstract sampleRate : number;
|
||||
overscan : boolean = false;
|
||||
rotate : number = 0;
|
||||
aspectRatio : number = 1.0;
|
||||
|
||||
pixels : Uint32Array;
|
||||
audio : SampledAudioSink;
|
||||
|
@ -321,7 +322,11 @@ export abstract class BasicMachine extends BasicHeadlessMachine implements Sampl
|
|||
this.audio = audio;
|
||||
}
|
||||
getVideoParams() : VideoParams {
|
||||
return {width:this.canvasWidth, height:this.numVisibleScanlines, overscan:this.overscan, rotate:this.rotate};
|
||||
return {width:this.canvasWidth,
|
||||
height:this.numVisibleScanlines,
|
||||
aspect:this.aspectRatio,
|
||||
overscan:this.overscan,
|
||||
rotate:this.rotate};
|
||||
}
|
||||
connectVideo(pixels:Uint32Array) : void {
|
||||
this.pixels = pixels;
|
||||
|
|
|
@ -368,6 +368,7 @@ export const Keys = {
|
|||
GP_D: {c: 67, n: "C", plyr:0, button:3},
|
||||
SELECT: {c: 220, n: "\\", plyr:0, button:8},
|
||||
START: {c: 13, n: "Enter", plyr:0, button:9},
|
||||
OPTION: {c: 9, n: "Tab", plyr:0, button:10},
|
||||
// gamepad and keyboard (player 1)
|
||||
P2_UP: {c: 87, n: "W", plyr:1, yaxis:-1},
|
||||
P2_DOWN: {c: 83, n: "S", plyr:1, yaxis:1},
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,7 +2,7 @@
|
|||
import { Platform, getOpcodeMetadata_6502, getToolForFilename_6502, Base6502MachinePlatform } from "../common/baseplatform";
|
||||
import { PLATFORMS, Keys, makeKeycodeMap } from "../common/emu";
|
||||
import { BaseMAME6502Platform } from "../common/mameplatform";
|
||||
import { Atari8_WASMMachine } from "../machine/atari8";
|
||||
import { Atari5200, Atari800, Atari8_WASMMachine } from "../machine/atari8";
|
||||
|
||||
declare var jt; // for 6502
|
||||
|
||||
|
@ -27,7 +27,7 @@ const ATARI8_KEYCODE_MAP = makeKeycodeMap([
|
|||
]);
|
||||
|
||||
const Atari800_MemoryMap = { main:[
|
||||
{name:'RAM',start:0x0,size:0x10000,type:'ram'},
|
||||
{name:'RAM',start:0x0,size:0xc000,type:'ram'},
|
||||
{name:'Left Cartridge ROM',start:0xa000,size:0x2000,type:'rom'},
|
||||
{name:'GTIA',start:0xd000,size:0x20,type:'io'},
|
||||
{name:'POKEY',start:0xd200,size:0x10,type:'io'},
|
||||
|
@ -35,7 +35,7 @@ const Atari800_MemoryMap = { main:[
|
|||
{name:'ANTIC',start:0xd400,size:0x10,type:'io'},
|
||||
{name:'Cartridge Control Line',start:0xd600,size:0x100,type:'io'},
|
||||
{name:'ROM',start:0xd800,size:0x800,type:'rom'},
|
||||
{name:'ATARI Character Set',start:0xe000,size:0x400,type:'rom'},
|
||||
{name:'Character Set',start:0xe000,size:0x400,type:'rom'},
|
||||
{name:'ROM',start:0xe400,size:0x1c00,type:'rom'},
|
||||
] }
|
||||
|
||||
|
@ -133,32 +133,6 @@ class Atari5200MAMEPlatform extends Atari8MAMEPlatform implements Platform {
|
|||
] } };
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
// Altirra Superkernel ROM (http://www.virtualdub.org/altirra.html) compiled with MADS
|
||||
const ALTIRRA_SUPERKERNEL_LZG = `
|
||||
TFpHAAAIAAAABJGU01hQARcZHSUAACUFGCUBABgAAGZmZh2IZv9mJUEAGD5gPAZ8HVBsGDBmRgAcNhw4
|
||||
b2Y7HagdoA4cGBgcDgAAcDgYGDhwHSA8/zwdehgYfhkFGh1EMCWhfhkGYx0IAAAGDBgwYEAAADxmbnZm
|
||||
PB0MHTgYHRs8Zh0RJeF+DBgMHVAMHDxsfgwdCGB8Bh1IPGB8ZiXifh15MB1oPB2IPGY+Bgw4GQRVGQNx
|
||||
JeMwHV4YDAYZBHclQWAdBhgwYBkEYBkC6Dxmbm5gPh0nHT9+ZgAAfGZ8ZmZ8HVBgYBkCUHhsZmZseBkD
|
||||
eGBgHXwl4h04PmBgbmYdMB1uGSIrfhkiOR0YBiUBHXAdLR0zAAAdJR2wY3d/a2NjHRB2fn5uHRA8HS4d
|
||||
YBkCZhkCSB1IbDYdyB1wPGA8BgYdGBkDUBkkkGZmfiXkPB0IY2Nrf3cZAkhmPB0zJeMdoH4ZAtcdIB4d
|
||||
bx4AAEAZAuoGAAB4HUh4AAAIHDYdLiUF/wAANn9/PhwIGSLHHx8lgQMlBR0D+PgZRA/4+Bkk5CXjAwcO
|
||||
HDhw4MDA4HA4HA4HAwEDBw8fP3//HRgADyUBgMDg8Pj8/v8dRB1M8CUBJeL/HZolBh3GHZQcHHd3CBwd
|
||||
RxkDeBkGFR0D//8diDx+fn48GQUu///AJQUdhxkjEx0gGQVEJQIZA8AdCHhgeGB+GQL4GDwZIjoZA0l+
|
||||
GSIwGDB+MBlDFwx+DCXjPH4dkAA8Bj4ZIshgGUJYfB1IYGBgPBkiyD5mHVAAPGZ+HUgOGD4ZBJ8dTwZ8
|
||||
HehmAAAYADgYGB1oGSP6PB0QbBkj+B0OHZAAZn9/axkich1nHRAZI+kdUBkm+RkDSAYdSBlDWAAZY3EA
|
||||
ABliPxgOHXglARkCgBkl+ABja38+Nh1IPBgZY2kdVwwZQqEZZDgZAtAYPBljzyUCAH54fG5mBgAIGDh4
|
||||
OBgIABAYHB4cGBAAbAACSKkgLA7o0A1FAI0O6KUlgmwQAjAPqYAZCQkMAnAPqUAZCQkIAmodLfAZCi0S
|
||||
AmokAPASGQ5EFAKpARkODBYCKhkOCxgZEAsaAopIur0BASkQ0ANsDgJoqmhA////aKgdQUiKSJhI5gLQ
|
||||
COYBpQQwAuYEpQPQ5aUFjQLUpQaNA9SlB40A1KAAJAQQAqQBogiYVQidEsDKEPeiB70A6JURyhD4jQvo
|
||||
bAQC////GQJBrQnoSikPqr0T/WwKAv8LAAoOCQgHDQYFBAwDAgEsD9SND9QQA2wGAmwCAnjYov+arf2/
|
||||
yf/QA2z+v6IAqQCVAJ0AwJ0A1J0A6OjQ8qn4jQnUogu9lf6dAAIZAmtPvc39nQAQHUMTvei/nVAdQ6kQ
|
||||
hQypD4UNqQCFDiVhDyVhEKkEjRvAogq9wh0nIB1cIoUHqcCNDtQdFQWpIIUGqQKND+ipwIUZIhapeMUC
|
||||
0Pxs/r9wcHBCABCCB0HC/SFsdGlycmEAFRIQEAAyLy0AK2VybmVsGWpyJQMub3cAcGxheWluZxoZDxUZ
|
||||
a58lHiUcJQkD/Lj8svyh/gL9svxI5gzQBBkiJhkj9SUfJR8lHiUBI/0x/QD8`;
|
||||
|
||||
|
||||
/// WASM Atari8 platform
|
||||
class Atari8WASMPlatform extends Base6502MachinePlatform<Atari8_WASMMachine> implements Platform {
|
||||
|
||||
|
@ -178,12 +152,50 @@ class Atari8WASMPlatform extends Base6502MachinePlatform<Atari8_WASMMachine> imp
|
|||
}
|
||||
}
|
||||
|
||||
class Atari800WASMPlatform extends Atari8WASMPlatform {
|
||||
|
||||
class Atari800WASMPlatform extends Atari8WASMPlatform {
|
||||
}
|
||||
|
||||
////
|
||||
|
||||
class Atari800Platform extends Base6502MachinePlatform<Atari800> {
|
||||
newMachine() { return new Atari800(); }
|
||||
getPresets() { return Atari800_PRESETS; }
|
||||
getDefaultExtension() { return ".c"; };
|
||||
getToolForFilename = getToolForFilename_Atari8;
|
||||
readAddress(a) { return this.machine.readConst(a); }
|
||||
getMemoryMap() { return Atari800_MemoryMap; }
|
||||
showHelp() {
|
||||
// TODO
|
||||
}
|
||||
getROMExtension(rom:Uint8Array) {
|
||||
// TODO
|
||||
if (rom && rom[0] == 0x01 && rom[1] == 0x08) return ".prg";
|
||||
else return ".bin";
|
||||
}
|
||||
async start() {
|
||||
let bios = await this.loadKernel();
|
||||
await super.start();
|
||||
this.machine.loadBIOS(bios);
|
||||
}
|
||||
biosPath = 'res/altirra/kernel.rom';
|
||||
async loadKernel() {
|
||||
var biosResponse = await fetch(this.biosPath);
|
||||
if (biosResponse.status == 200 || (biosResponse as any as Blob).size) {
|
||||
var biosBinary = await biosResponse.arrayBuffer();
|
||||
return new Uint8Array(biosBinary);
|
||||
} else throw new Error('could not load BIOS file');
|
||||
}
|
||||
}
|
||||
|
||||
class Atari5200Platform extends Atari800Platform {
|
||||
newMachine() { return new Atari5200(); }
|
||||
biosPath = 'res/altirra/superkernel.rom';
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
PLATFORMS['atari8-800xl.mame'] = Atari800MAMEPlatform
|
||||
PLATFORMS['atari8-800.xlmame'] = Atari800MAMEPlatform
|
||||
PLATFORMS['atari8-5200.mame'] = Atari5200MAMEPlatform
|
||||
PLATFORMS['atari8-800xl'] = Atari800WASMPlatform
|
||||
PLATFORMS['atari8-800.xlwasm'] = Atari800WASMPlatform
|
||||
PLATFORMS['atari8-800'] = Atari800Platform
|
||||
PLATFORMS['atari8-5200'] = Atari5200Platform
|
||||
|
|
|
@ -271,6 +271,13 @@ var PLATFORM_PARAMS = {
|
|||
libargs: ['atari.lib', '-D', '__CARTFLAGS__=4'],
|
||||
fastbasic_cfgfile: 'fastbasic-cart.cfg',
|
||||
},
|
||||
'atari8-800': {
|
||||
arch: '6502',
|
||||
define: ['__ATARI__'],
|
||||
cfgfile: 'atari-cart.cfg',
|
||||
libargs: ['atari.lib', '-D', '__CARTFLAGS__=4'],
|
||||
fastbasic_cfgfile: 'fastbasic-cart.cfg',
|
||||
},
|
||||
'atari8-5200': {
|
||||
arch: '6502',
|
||||
define: ['__ATARI5200__'],
|
||||
|
|
|
@ -40,7 +40,6 @@ var _sms = require('gen/platform/sms.js');
|
|||
var _c64 = require('gen/platform/c64.js');
|
||||
var _vectrex = require('gen/platform/vectrex.js');
|
||||
var _zx = require('gen/platform/zx.js');
|
||||
var _atari8 = require('gen/platform/atari8.js');
|
||||
var util = require('gen/common/util.js');
|
||||
util.loadScript = function(s) { console.log('tried to load',s); } // for vcs
|
||||
|
||||
|
@ -360,13 +359,11 @@ describe('Platform Replay', () => {
|
|||
}
|
||||
});
|
||||
});
|
||||
/*
|
||||
it('Should run atari 800xl', async () => {
|
||||
await testPlatform('atari8-800xl', 'siegegame.bin', 92, (platform, frameno) => {
|
||||
it('Should run atari800', async () => {
|
||||
await testPlatform('atari8-800', 'siegegame.bin', 92, (platform, frameno) => {
|
||||
if (frameno == 62) {
|
||||
keycallback(Keys.VK_DOWN.c, Keys.VK_DOWN.c, 1);
|
||||
}
|
||||
});
|
||||
});
|
||||
*/
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue