コード例 #1
0
ファイル: stacktest.py プロジェクト: carriercomm/cleese
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
コード例 #2
0
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
コード例 #3
0
ファイル: echoisr.py プロジェクト: MatiasNAmendola/cleese
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
コード例 #4
0
    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 = '@&$*#. '
コード例 #5
0
    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
コード例 #6
0
ファイル: led.py プロジェクト: MatiasNAmendola/cleese
	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