home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / atari / atari800-0.8.6 / emuos.lis < prev    next >
Encoding:
File List  |  1998-05-10  |  12.1 KB  |  548 lines

  1.         .OPT NO LIST
  2. ;
  3. ; UPDATE EMUOS.LIS
  4. ; Start Emulator
  5. ; Insert MAC/65 Cartridge
  6. ; ENTER #H5:EMUOS.LIS,A
  7. ; ASM,,#H0:EMUOS.OBJ
  8. ; Exit Emulator
  9. ; mkimg -input emuos.obj -image emuos.img -header emuos.h c000 ffff
  10. ;
  11. BOOT =  $09
  12. RTCLOK = $12
  13. VVBLKI = $0222
  14. VVBLKD = $0224
  15. ;
  16. ; ============================
  17. ; OS Hardware Shadow Registers
  18. ; ============================
  19. ;
  20. CHART = $02F3
  21. CHBAS = $02F4
  22. CH  =   $02FC
  23. COLOR4 = $02C8
  24. COLOR0 = $02C4
  25. COLOR1 = $02C5
  26. COLOR2 = $02C6
  27. COLOR3 = $02C7
  28. PCOLR0 = $02C0
  29. PCOLR1 = $02C1
  30. PCOLR2 = $02C2
  31. PCOLR3 = $02C3
  32. SDLSTH = $0231
  33. SDLSTL = $0230
  34. SDMCTL = $022F
  35. STICK0 = $0278
  36. STICK1 = $0279
  37. STICK2 = $027A
  38. STICK3 = $027B
  39. GPRIOR = $026F
  40. SSKCTL = $0232
  41. STRIG0 = $0284
  42. STRIG1 = $0285
  43. STRIG2 = $0286
  44. STRIG3 = $0287
  45. ;
  46. DDEVIC = $0300
  47. DUNIT = $0301
  48. DCOMND = $0302
  49. DSTATS = $0303
  50. DBUFLO = $0304
  51. DBUFHI = $0305
  52. DTIMLO = $0306
  53. DTIMHI = $0307
  54. DBYTLO = $0308
  55. DBYTHI = $0309
  56. DAUX1 = $030A
  57. DAUX2 = $030B
  58. ;
  59. ; ==================
  60. ; Hardware Registers
  61. ; ==================
  62. ;
  63. CHACTL = $D401
  64. CHBASE = $D409
  65. COLBK = $D01A
  66. COLPF0 = $D016
  67. COLPF1 = $D017
  68. COLPF2 = $D018
  69. COLPF3 = $D019
  70. COLPM0 = $D012
  71. COLPM1 = $D013
  72. COLPM2 = $D014
  73. COLPM3 = $D015
  74. CONSOL = $D01F
  75. DLISTH = $D403
  76. DLISTL = $D402
  77. DMACTL = $D400
  78. KBCODE = $D209
  79. IRQEN = $D20E
  80. IRQST = $D20E
  81. NMIRES = $D40F
  82. NMIST = $D40F
  83. PACTL = $D302
  84. PORTA = $D300
  85. PORTB = $D301
  86. PRIOR = $D01B
  87. SKCTL = $D20F
  88. TRIG0 = $D010
  89. TRIG1 = $D011
  90. TRIG2 = $D012
  91. TRIG3 = $D013
  92. VCOUNT = $D40B
  93. ;
  94.     *=  $E000
  95.     .BYTE $00,$00,$00,$00,$00,$00,$00,$00
  96.     .BYTE $00,$18,$18,$18,$18,$00,$18,$00
  97.     .BYTE $00,$66,$66,$66,$00,$00,$00,$00
  98.     .BYTE $00,$66,$FF,$66,$66,$FF,$66,$00
  99.     .BYTE $18,$3E,$60,$3C,$06,$7C,$18,$00
  100.     .BYTE $00,$66,$6C,$18,$30,$66,$46,$00
  101.     .BYTE $1C,$36,$1C,$38,$6F,$66,$3B,$00
  102.     .BYTE $00,$18,$18,$18,$00,$00,$00,$00
  103.     .BYTE $00,$0E,$1C,$18,$18,$1C,$0E,$00
  104.     .BYTE $00,$70,$38,$18,$18,$38,$70,$00
  105.     .BYTE $00,$66,$3C,$FF,$3C,$66,$00,$00
  106.     .BYTE $00,$18,$18,$7E,$18,$18,$00,$00
  107.     .BYTE $00,$00,$00,$00,$00,$18,$18,$30
  108.     .BYTE $00,$00,$00,$7E,$00,$00,$00,$00
  109.     .BYTE $00,$00,$00,$00,$00,$18,$18,$00
  110.     .BYTE $00,$06,$0C,$18,$30,$60,$40,$00
  111.     .BYTE $00,$3C,$66,$6E,$76,$66,$3C,$00
  112.     .BYTE $00,$18,$38,$18,$18,$18,$7E,$00
  113.     .BYTE $00,$3C,$66,$0C,$18,$30,$7E,$00
  114.     .BYTE $00,$7E,$0C,$18,$0C,$66,$3C,$00
  115.     .BYTE $00,$0C,$1C,$3C,$6C,$7E,$0C,$00
  116.     .BYTE $00,$7E,$60,$7C,$06,$66,$3C,$00
  117.     .BYTE $00,$3C,$60,$7C,$66,$66,$3C,$00
  118.     .BYTE $00,$7E,$06,$0C,$18,$30,$30,$00
  119.     .BYTE $00,$3C,$66,$3C,$66,$66,$3C,$00
  120.     .BYTE $00,$3C,$66,$3E,$06,$0C,$38,$00
  121.     .BYTE $00,$00,$18,$18,$00,$18,$18,$00
  122.     .BYTE $00,$00,$18,$18,$00,$18,$18,$30
  123.     .BYTE $06,$0C,$18,$30,$18,$0C,$06,$00
  124.     .BYTE $00,$00,$7E,$00,$00,$7E,$00,$00
  125.     .BYTE $60,$30,$18,$0C,$18,$30,$60,$00
  126.     .BYTE $00,$3C,$66,$0C,$18,$00,$18,$00
  127.     .BYTE $00,$3C,$66,$6E,$6E,$60,$3E,$00
  128.     .BYTE $00,$18,$3C,$66,$66,$7E,$66,$00
  129.     .BYTE $00,$7C,$66,$7C,$66,$66,$7C,$00
  130.     .BYTE $00,$3C,$66,$60,$60,$66,$3C,$00
  131.     .BYTE $00,$78,$6C,$66,$66,$6C,$78,$00
  132.     .BYTE $00,$7E,$60,$7C,$60,$60,$7E,$00
  133.     .BYTE $00,$7E,$60,$7C,$60,$60,$60,$00
  134.     .BYTE $00,$3E,$60,$60,$6E,$66,$3E,$00
  135.     .BYTE $00,$66,$66,$7E,$66,$66,$66,$00
  136.     .BYTE $00,$7E,$18,$18,$18,$18,$7E,$00
  137.     .BYTE $00,$06,$06,$06,$06,$66,$3C,$00
  138.     .BYTE $00,$66,$6C,$78,$78,$6C,$66,$00
  139.     .BYTE $00,$60,$60,$60,$60,$60,$7E,$00
  140.     .BYTE $00,$63,$77,$7F,$6B,$63,$63,$00
  141.     .BYTE $00,$66,$76,$7E,$7E,$6E,$66,$00
  142.     .BYTE $00,$3C,$66,$66,$66,$66,$3C,$00
  143.     .BYTE $00,$7C,$66,$66,$7C,$60,$60,$00
  144.     .BYTE $00,$3C,$66,$66,$66,$6C,$36,$00
  145.     .BYTE $00,$7C,$66,$66,$7C,$6C,$66,$00
  146.     .BYTE $00,$3C,$60,$3C,$06,$06,$3C,$00
  147.     .BYTE $00,$7E,$18,$18,$18,$18,$18,$00
  148.     .BYTE $00,$66,$66,$66,$66,$66,$7E,$00
  149.     .BYTE $00,$66,$66,$66,$66,$3C,$18,$00
  150.     .BYTE $00,$63,$63,$6B,$7F,$77,$63,$00
  151.     .BYTE $00,$66,$66,$3C,$3C,$66,$66,$00
  152.     .BYTE $00,$66,$66,$3C,$18,$18,$18,$00
  153.     .BYTE $00,$7E,$0C,$18,$30,$60,$7E,$00
  154.     .BYTE $00,$1E,$18,$18,$18,$18,$1E,$00
  155.     .BYTE $00,$40,$60,$30,$18,$0C,$06,$00
  156.     .BYTE $00,$78,$18,$18,$18,$18,$78,$00
  157.     .BYTE $00,$08,$1C,$36,$63,$00,$00,$00
  158.     .BYTE $00,$00,$00,$00,$00,$00,$FF,$00
  159.     .BYTE $00,$36,$7F,$7F,$3E,$1C,$08,$00
  160.     .BYTE $18,$18,$18,$1F,$1F,$18,$18,$18
  161.     .BYTE $03,$03,$03,$03,$03,$03,$03,$03
  162.     .BYTE $18,$18,$18,$F8,$F8,$00,$00,$00
  163.     .BYTE $18,$18,$18,$F8,$F8,$18,$18,$18
  164.     .BYTE $00,$00,$00,$F8,$F8,$18,$18,$18
  165.     .BYTE $03,$07,$0E,$1C,$38,$70,$E0,$C0
  166.     .BYTE $C0,$E0,$70,$38,$1C,$0E,$07,$03
  167.     .BYTE $01,$03,$07,$0F,$1F,$3F,$7F,$FF
  168.     .BYTE $00,$00,$00,$00,$0F,$0F,$0F,$0F
  169.     .BYTE $80,$C0,$E0,$F0,$F8,$FC,$FE,$FF
  170.     .BYTE $0F,$0F,$0F,$0F,$00,$00,$00,$00
  171.     .BYTE $F0,$F0,$F0,$F0,$00,$00,$00,$00
  172.     .BYTE $FF,$FF,$00,$00,$00,$00,$00,$00
  173.     .BYTE $00,$00,$00,$00,$00,$00,$FF,$FF
  174.     .BYTE $00,$00,$00,$00,$F0,$F0,$F0,$F0
  175.     .BYTE $00,$1C,$1C,$77,$77,$08,$1C,$00
  176.     .BYTE $00,$00,$00,$1F,$1F,$18,$18,$18
  177.     .BYTE $00,$00,$00,$FF,$FF,$00,$00,$00
  178.     .BYTE $18,$18,$18,$FF,$FF,$18,$18,$18
  179.     .BYTE $00,$00,$3C,$7E,$7E,$7E,$3C,$00
  180.     .BYTE $00,$00,$00,$00,$FF,$FF,$FF,$FF
  181.     .BYTE $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
  182.     .BYTE $00,$00,$00,$FF,$FF,$18,$18,$18
  183.     .BYTE $18,$18,$18,$FF,$FF,$00,$00,$00
  184.     .BYTE $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0
  185.     .BYTE $18,$18,$18,$1F,$1F,$00,$00,$00
  186.     .BYTE $78,$60,$78,$60,$7E,$18,$1E,$00
  187.     .BYTE $00,$18,$3C,$7E,$18,$18,$18,$00
  188.     .BYTE $00,$18,$18,$18,$7E,$3C,$18,$00
  189.     .BYTE $00,$18,$30,$7E,$30,$18,$00,$00
  190.     .BYTE $00,$18,$0C,$7E,$0C,$18,$00,$00
  191.     .BYTE $00,$18,$3C,$7E,$7E,$3C,$18,$00
  192.     .BYTE $00,$00,$3C,$06,$3E,$66,$3E,$00
  193.     .BYTE $00,$60,$60,$7C,$66,$66,$7C,$00
  194.     .BYTE $00,$00,$3C,$60,$60,$60,$3C,$00
  195.     .BYTE $00,$06,$06,$3E,$66,$66,$3E,$00
  196.     .BYTE $00,$00,$3C,$66,$7E,$60,$3C,$00
  197.     .BYTE $00,$0E,$18,$3E,$18,$18,$18,$00
  198.     .BYTE $00,$00,$3E,$66,$66,$3E,$06,$7C
  199.     .BYTE $00,$60,$60,$7C,$66,$66,$66,$00
  200.     .BYTE $00,$18,$00,$38,$18,$18,$3C,$00
  201.     .BYTE $00,$06,$00,$06,$06,$06,$06,$3C
  202.     .BYTE $00,$60,$60,$6C,$78,$6C,$66,$00
  203.     .BYTE $00,$38,$18,$18,$18,$18,$3C,$00
  204.     .BYTE $00,$00,$66,$7F,$7F,$6B,$63,$00
  205.     .BYTE $00,$00,$7C,$66,$66,$66,$66,$00
  206.     .BYTE $00,$00,$3C,$66,$66,$66,$3C,$00
  207.     .BYTE $00,$00,$7C,$66,$66,$7C,$60,$60
  208.     .BYTE $00,$00,$3E,$66,$66,$3E,$06,$06
  209.     .BYTE $00,$00,$7C,$66,$60,$60,$60,$00
  210.     .BYTE $00,$00,$3E,$60,$3C,$06,$7C,$00
  211.     .BYTE $00,$18,$7E,$18,$18,$18,$0E,$00
  212.     .BYTE $00,$00,$66,$66,$66,$66,$3E,$00
  213.     .BYTE $00,$00,$66,$66,$66,$3C,$18,$00
  214.     .BYTE $00,$00,$63,$6B,$7F,$3E,$36,$00
  215.     .BYTE $00,$00,$66,$3C,$18,$3C,$66,$00
  216.     .BYTE $00,$00,$66,$66,$66,$3E,$0C,$78
  217.     .BYTE $00,$00,$7E,$0C,$18,$30,$7E,$00
  218.     .BYTE $00,$18,$3C,$7E,$7E,$18,$3C,$00
  219.     .BYTE $18,$18,$18,$18,$18,$18,$18,$18
  220.     .BYTE $00,$7E,$78,$7C,$6E,$66,$06,$00
  221.     .BYTE $08,$18,$38,$78,$38,$18,$08,$00
  222.     .BYTE $10,$18,$1C,$1E,$1C,$18,$10,$00
  223. ;
  224. DISKIV = $E450
  225. DSKINV = $E453
  226. CIOV =  $E456
  227. SIOV =  $E459
  228. SETVBV = $E45C
  229. SYSVBV = $E45F
  230. XITVBV = $E462
  231. SIOINV = $E465
  232. SENDEV = $E468
  233. INTINV = $E46B
  234. CIOINV = $E46E
  235. BLKBDV = $E471
  236. WARMSV = $E474
  237. COLDSV = $E477
  238. RBLOKV = $E47A
  239. CSOPIV = $E47D
  240. ;
  241.     *=  DISKIV
  242.     JMP HALT
  243.     *=  DSKINV
  244.     JMP HALT
  245.     *=  CIOV
  246.     JMP HALT
  247.     *=  SIOV
  248.     JMP HALT
  249.     *=  SETVBV
  250.     JMP HALT
  251.     *=  SYSVBV
  252.     JMP HALT
  253.     *=  XITVBV
  254.     JMP XITVBL
  255.     *=  SIOINV
  256.     JMP HALT
  257.     *=  SENDEV
  258.     JMP HALT
  259.     *=  INTINV
  260.     JMP HALT
  261.     *=  CIOINV
  262.     JMP HALT
  263.     *=  BLKBDV
  264.     JMP HALT
  265.     *=  WARMSV
  266.     JMP COLDSTART
  267.     *=  COLDSV
  268.     JMP COLDSTART
  269.     *=  RBLOKV
  270.     JMP HALT
  271.     *=  CSOPIV
  272.     JMP HALT
  273. ;
  274.     *=  $F800
  275. COLDSTART
  276.     LDX #$FF
  277.     TXS 
  278.     LDA # <SYSVBL
  279.     STA VVBLKI
  280.     LDA # >SYSVBL
  281.     STA VVBLKI+1
  282.     LDA # <XITVBL
  283.     STA VVBLKD
  284.     LDA # >XITVBL
  285.     STA VVBLKD+1
  286.     LDA # <IRQ
  287.     STA $0216
  288.     LDA # >IRQ
  289.     STA $0217
  290.     LDA $0000
  291.     BNE RPIIMG    ; Run pre-installed image
  292.     LDA $0001
  293.     BNE RPIIMG    ; Run pre-installed image
  294.     LDA $BFFC
  295.     INC $BFFC
  296.     CMP $BFFC
  297.     BNE BOOTDISK
  298. ;    BNE MONTY
  299.     JSR CART.INIT
  300.     JMP ($BFFA)
  301. CART.INIT
  302.     JMP ($BFFE)
  303. ;MONTY
  304. ;    STA $BFFC   ; Restore original value to $BFFC
  305. ;    JMP $0115   ; Run Montezummas Revenge
  306. RPIIMG
  307.     JMP ($0000)    ; Run pre-installed image
  308. ;
  309. BOOTDISK
  310.     LDA #$31
  311.     STA DDEVIC
  312.     LDA #$01
  313.     STA DUNIT
  314.     LDA #$52
  315.     STA DCOMND
  316.     LDA #0
  317.     STA DBUFLO
  318.     LDA #4
  319.     STA DBUFHI
  320.     LDA #$80
  321.     STA DBYTLO
  322.     LDA #$00
  323.     STA DBYTHI
  324.     LDA #1
  325.     STA DAUX1
  326.     LDA #0
  327.     STA DAUX2
  328.     JSR SIOV
  329.     BMI HALT
  330.     LDA $0400
  331.     CMP #$FF
  332.     BNE BOOTDISK.1
  333.     LDA $0401
  334.     CMP #$FF
  335.     BEQ BINARY.FILE
  336. BOOTDISK.1
  337.     STA 0
  338.     CLC 
  339.     LDA $0402
  340.     STA DBUFLO
  341.     ADC #6
  342.     STA 1
  343.     LDA $0403
  344.     STA DBUFHI
  345.     ADC #0
  346.     STA 2
  347.     LDA $0404
  348.     STA 3
  349.     LDA $0405
  350.     STA 4
  351. ?L1
  352.     JSR SIOV
  353.     BMI HALT
  354.     CLC 
  355.     LDA DBUFLO
  356.     ADC #$80
  357.     STA DBUFLO
  358.     LDA DBUFHI
  359.     ADC #0
  360.     STA DBUFHI
  361.     INC DAUX1
  362.     BNE ?L2
  363.     INC DAUX2
  364. ?L2
  365.     DEC 0
  366.     BNE ?L1
  367.     DEC 5
  368.     BPL ?L1
  369.     JSR ?L3     ; Run initialisation code
  370.     LDA #1
  371.     STA BOOT
  372.     JSR ?L4     ; Run main program
  373.     RTS 
  374. ?L3
  375.     JMP ($01)
  376. ?L4
  377.     JMP ($03)
  378. ;
  379. BINARY.FILE
  380. ;
  381. HALT
  382.     LDA # <DLIST
  383.     STA SDLSTL
  384.     STA DLISTL
  385.     LDA # >DLIST
  386.     STA SDLSTH
  387.     STA DLISTH
  388.     LDA #$E0
  389.     STA CHBASE
  390.     STA CHBAS
  391.     LDA #$22
  392.     STA DMACTL
  393.     STA SDMCTL
  394.     LDA #$02
  395.     STA CHACTL
  396.     STA CHART
  397.     LDA #$CA
  398.     STA COLBK
  399.     STA COLOR4
  400.     LDA #$94
  401.     STA COLPF2
  402.     STA COLOR2
  403.     LDA #$0A
  404.     STA COLPF1
  405.     STA COLOR1
  406. ;
  407. HALT2
  408.     JMP HALT2
  409. DLIST
  410.     .BYTE $70,$70,$70
  411.     .BYTE $42, <HALTMSG, >HALTMSG
  412.     .BYTE $02,$02,$02,$02,$02
  413.     .BYTE $02,$02,$02,$02,$02
  414.     .BYTE $02,$02,$02,$02,$02
  415.     .BYTE $02,$02,$02,$02,$02
  416.     .BYTE $02,$02,$02
  417.     .BYTE $41, <DLIST, >DLIST
  418. ;
  419. HALTMSG
  420.     .SBYTE "      Atari800/OS Emulation Halted      "
  421.     .SBYTE "    Copright (c) 1997 David J. Firth    "
  422.     .SBYTE "                                        "
  423.     .SBYTE "    E-Mail: david@signus.demon.co.uk    "
  424.     .SBYTE "  http://www.signus.demon.co.uk/david/  "
  425.     .SBYTE "                                        "
  426.     .SBYTE "Sorry this program needs a real Atari/OS"
  427.     .SBYTE "                                        "
  428.     .SBYTE "                                        "
  429.     .SBYTE "                                        "
  430.     .SBYTE "                                        "
  431.     .SBYTE "                                        "
  432.     .SBYTE "                                        "
  433.     .SBYTE "                                        "
  434.     .SBYTE "                                        "
  435.     .SBYTE "                                        "
  436.     .SBYTE "                                        "
  437.     .SBYTE "                                        "
  438.     .SBYTE "                                        "
  439.     .SBYTE "                                        "
  440.     .SBYTE "                                        "
  441.     .SBYTE "                                        "
  442.     .SBYTE "                                        "
  443.     .SBYTE "                                        "
  444. ;
  445. NMI
  446.     BIT NMIST
  447.     BPL VBI
  448.     JMP ($0200)
  449. VBI
  450.     PHA 
  451.     TXA 
  452.     PHA 
  453.     TYA 
  454.     PHA 
  455.     STA NMIRES
  456.     JMP (VVBLKI)
  457. SYSVBL
  458.     INC RTCLOK+2
  459.     BNE SYSVBL.1
  460.     INC RTCLOK+1
  461.     BNE SYSVBL.1
  462.     INC RTCLOK
  463. SYSVBL.1
  464.     LDA SDMCTL
  465.     STA DMACTL
  466.     LDA SDLSTL
  467.     STA DLISTL
  468.     LDA SDLSTH
  469.     STA DLISTH
  470.     LDA COLOR4
  471.     STA COLBK
  472.     LDA COLOR0
  473.     STA COLPF0
  474.     LDA COLOR1
  475.     STA COLPF1
  476.     LDA COLOR2
  477.     STA COLPF2
  478.     LDA COLOR3
  479.     STA COLPF3
  480.     LDA PCOLR0
  481.     STA COLPM0
  482.     LDA PCOLR1
  483.     STA COLPM1
  484.     LDA PCOLR2
  485.     STA COLPM2
  486.     LDA PCOLR3
  487.     STA COLPM3
  488.     LDA CHART
  489.     STA CHACTL
  490.     LDA CHBAS
  491.     STA CHBASE
  492.     LDA PORTA
  493.     AND #$0F
  494.     STA STICK0
  495.     LDA PORTA
  496.     ASL A
  497.     ASL A
  498.     ASL A
  499.     ASL A
  500.     STA STICK1
  501.     LDA PORTB
  502.     AND #$0F
  503.     STA STICK2
  504.     LDA PORTB
  505.     ASL A
  506.     ASL A
  507.     ASL A
  508.     ASL A
  509.     STA STICK3
  510.     LDA GPRIOR
  511.     STA PRIOR
  512.     LDA SSKCTL
  513.     STA SKCTL
  514.     LDA TRIG0
  515.     STA STRIG0
  516.     LDA TRIG1
  517.     STA STRIG1
  518.     LDA TRIG2
  519.     STA STRIG2
  520.     LDA TRIG3
  521.     STA STRIG3
  522.     JMP (VVBLKD)
  523. XITVBL
  524.     PLA 
  525.     TAY 
  526.     PLA 
  527.     TAX 
  528.     PLA 
  529. IRQ.VECTOR
  530.     JMP ($0216)
  531. IRQ
  532.     PHA 
  533.     LDA IRQST   ; Get Interrupt Status
  534.     AND #$40
  535.     BNE IRQ.EXIT
  536.     LDA KBCODE
  537.     STA CH
  538. IRQ.EXIT
  539.     PLA 
  540.     RTI 
  541. ;
  542.     *=  $FFFA
  543.     .WORD NMI
  544.     *=  $FFFC
  545.     .WORD COLDSTART
  546.     *=  $FFFE
  547.     .WORD IRQ.VECTOR
  548.