import buf import stack import isr isr.setvec() print "-- test stacks" def recurse(i): if i: print "-- swapped: %d" % i recurse(stack.swap(i - 1)) else: stack.swap(None) def worker(): recurse(8) newstack = buf.bss(0x800) stack.init(newstack, worker) i = stack.swap(None, newstack) while i: print "-- swapped back: %d" % i i = stack.swap(i - 1, newstack) print "-- test stacks done" print
import buf import stack import isr isr.setvec() print '-- test stacks' def recurse(i): if i: print '-- swapped: %d' % i recurse(stack.swap(i - 1)) else: stack.swap(None) def worker(): recurse(8) newstack = buf.bss(0x800) stack.init(newstack, worker) i = stack.swap(None, newstack) while i: print '-- swapped back: %d' % i i = stack.swap(i - 1, newstack) print '-- test stacks done' print
def prch(ch, fmt): print ch tb[0] = ch; tb[1] = fmt def kbd_isr(): while py8042.more_chars(): ch = keyb.translate_scancode(py8042.get_scancode()) if ch: prch(ch, '\015') squeaks = 0 def clk_isr(): tb[158] = '/-\|'[isr.ticker & 3] while py8042.more_squeaks(): print "mouse: %x %d %d" % py8042.get_squeak() global squeaks squeaks = squeaks + 1 isr.setvec(clk_isr, kbd_isr) ######################################## while (isr.ticker < 40) and (squeaks < 1): pass splashdown() print 'Press a key' while 1: pass
blit.fill(pyvga.framebuffer, 320, 312, 0, 8, 8, (isr.ticker & 15) + 16) if py8042.more_squeaks(): dx = dy = 0 while py8042.more_squeaks(): _, dx, dy = py8042.get_squeak() if dx > 10: dir = 'l' elif dy > 10: dir = 'k' elif dx < -10: dir = 'h' elif dy < -10: dir = 'j' elif dir: bufchar = dir dir = None isr.setvec(clk_isr, kbd_isr) ################################################################################ #--test map-- #map = list(' ##### # # # # ### ## # # ### # ## # ###### # # ## ##### ..# # .$ ..# ##### ### #@## ..# # ######### #######') #--easier level-- map = list( ' ##### # # #$ # ### $## # $ $ # ### # ## # ###### # # ## ##### ..# # $ $ ..# ##### ### #@## ..# # ######### #######' ) #--harder level-- #map = list(' ####### # ...# ##### ...# # . .# # ## ...# ## ## ...# ### ######## # $$$ ## ##### $ $ ##### ## #$ $ # # #@ $ $ $ $ # ###### $$ $ ##### # # ########') tile_ndx = '@&$*#. '
else: blit.fill(pyvga.framebuffer, 320, 140, 150, 40, 20, v) ######################################## import isr import ports def key_isr(): ports.outb(0xfe, 0x64) # reboot! def clk_isr(): if isr.ticker > 50: seven_segment(rtc.seconds() & 0xF) ######################################## pyvga.set320x200x256() pyvga.framebuffer[:0xFA00] = pyvga.splashscreen[:0xFA00] isr.setvec(clk_isr, key_isr) while isr.ticker < 40: pass blit.fill(pyvga.framebuffer, 320, 0, 0, 320, 200, 0) while 1: pass
if ord("\01\00\01\01\00\01\01\00\01\00\01\01\01\01\01\00"[n]): v = 55 else: v = 0 if v: blit.paste(pyvga.framebuffer,320, 140, 150, horz, 40) else: blit.fill(pyvga.framebuffer,320, 140,150, 40, 20, v) ######################################## import isr import ports def key_isr(): ports.outb(0xfe,0x64) # reboot! def clk_isr(): if isr.ticker > 50: seven_segment(rtc.seconds() & 0xF) ######################################## pyvga.set320x200x256() pyvga.framebuffer[:0xFA00] = pyvga.splashscreen[:0xFA00] isr.setvec(clk_isr, key_isr) while isr.ticker < 40: pass blit.fill(pyvga.framebuffer,320,0,0,320,200,0) while 1: pass