POP - sjsoftware/centurion-cpu6 GitHub Wiki

Bugs

This operation can overflow and wrap if Count is too high, popping A from the stack following P

Microcode

190 0     CRY0 r00 r00 PASS A+Q                   P P P      633 33 (cc) JSR BADR                                       READ.SWP    (190)
    0     CRY0 r00 r05 RAM  NOT.D                 P P P      00f 0f (f0)          BUS.WAIT INC.MAR                      READ.CONST  (191)
    0     CRY0 r05 r04 RAM  D.AND.A               D D D      433 33 (cc)                   LOAD.SWP                     READ.DB     (192)
    0     CRY0 r00 r09 RAM  NOT.D                 P P P      00a 0a (f5)                                       LOAD.RIR READ.CONST  (433)
    1 RLO CRY0 r00 r00 PASS A+Q                   P P P      466 66 (99) JSR PE                                         READ.SWP    (434)
    1     CRY0 r00 r00 PASS D                     D D D      644 44 (bb)                                       LOAD.RR  READ.RF     (435)
    0     CRY0 r00 r00 PASS D                     D D D      3ce ce (31)                            LOAD.ALO   LOAD.RR  READ.RF     (644)
    0     CRY0 r00 r00 PASS A+Q                   D D D      3ea ea (15)                   LOAD.AHI                     READ.SWP    (3ce)
    0     CRY0 r00 r00 PASS A+Q                   D D A      280 80 (7f)                   LOAD.AHI LOAD.ALO   LOAD.MAR READ.SWP    (3ea)

28f 0     CRY0 r00 r09 RAM  D                     D D D      266 66 (99)                   BUS.RD                       READ.SWP    (28f)
    0     CRY0 r09 r04 RAMA B-1                   P P P      63b 3b (c4) JSR BADR LOAD.FLR                     LOAD.RIR READ.SWP    (266)
    0     CRY0 r00 r00 PASS A+Q                   P P P      785 85 (7a) JSR DMA  BUS.WAIT INC.MAR                      READ.SWP    (267)
    0     CRY0 r00 r00 PASS D                     P P P      1d6 d6 (29) JSR PE                                LOAD.RR  READ.DB     (268)
    1     CRY1 r00 r09 RAM  B+0         COND SIGN P P D      0ce ce (31)                            WRITE.RF            READ.SWP    (269)
    0     CRY0 r00 r00 PASS A+Q                   D D D      266 66 (99)                   BUS.RD                       READ.SWP    (26e)
26f 0     CRY0 r00 r00 RAM  NOT.D                 D D P      2aa aa (55)                                       LOAD.RIR READ.CONST  (26f)

2a0 0     CRY0 r00 r00 PASS D                     P P P      000 00 (ff)                                       LOAD.RR  READ.ALO    (2a0)
    1 RLO CRY0 r05 r00 PASS D.EQV.A               D D D      3fa fa (05)                            WRITE.RF   LOAD.RR  READ.AHI    (2a1)
    1     CRY0 r00 r00 PASS A+Q                   D D D      100 00 (ff)                            WRITE.RF   LOAD.MAR READ.SWP    (3fa)